product-build-linux.yml 4.0 KB
Newer Older
J
Joao Moreno 已提交
1
steps:
J
Joao Moreno 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
- task: NodeTool@0
  inputs:
    versionSpec: "10.15.1"

- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
  inputs:
    versionSpec: "1.10.1"

- task: AzureKeyVault@1
  displayName: 'Azure Key Vault: Get Secrets'
  inputs:
    azureSubscription: 'vscode-builds-subscription'
    KeyVaultName: vscode

- script: |
    set -e
    export npm_config_arch="$(VSCODE_ARCH)"

    cat << EOF > ~/.netrc
    machine monacotools.visualstudio.com
    password $(devops-pat)
    machine github.com
    login vscode
    password $(github-distro-mixin-password)
    EOF

    git config user.email "vscode@microsoft.com"
    git config user.name "VSCode"
  displayName: Prepare tooling

J
Joao Moreno 已提交
32 33
- script: |
    set -e
J
Joao Moreno 已提交
34 35 36 37 38 39 40
    git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
    git fetch distro
    git merge $(node -p "require('./package.json').distro")
  displayName: Merge distro

- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
  inputs:
J
Joao Moreno 已提交
41
    keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
J
Joao Moreno 已提交
42 43 44 45 46
    targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
    vstsFeed: 'npm-vscode'

- script: |
    set -e
J
Joao Moreno 已提交
47
    yarn --frozen-lockfile
J
Joao Moreno 已提交
48
  displayName: Install dependencies
49 50
  condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))

J
Joao Moreno 已提交
51 52
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
  inputs:
J
Joao Moreno 已提交
53
    keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
J
Joao Moreno 已提交
54 55 56 57 58 59 60 61 62 63
    targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
    vstsFeed: 'npm-vscode'
  condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))

- script: |
    set -e
    yarn postinstall
  displayName: Run postinstall scripts
  condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))

J
Joao Moreno 已提交
64 65 66 67 68 69 70 71 72 73 74 75
- script: |
    set -e
    yarn gulp mixin
  displayName: Mix in quality

- script: |
    set -e
    yarn gulp hygiene
    yarn monaco-compile-check
  displayName: Run hygiene checks
  condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))

J
Joao Moreno 已提交
76 77 78 79
- script: |
    set -e
    node build/azure-pipelines/common/installDistroDependencies.js
    node build/azure-pipelines/common/installDistroDependencies.js remote
J
Joao Moreno 已提交
80 81
    node build/lib/builtInExtensions.js
  displayName: Install distro dependencies and extensions
J
Joao Moreno 已提交
82

J
Joao Moreno 已提交
83 84
- script: |
    set -e
J
Joao Moreno 已提交
85 86
    ./build/azure-pipelines/common/extract-telemetry.sh
  displayName: Extract Telemetry
J
Joao Moreno 已提交
87 88 89

- script: |
    set -e
J
Joao Moreno 已提交
90 91 92
    yarn gulp compile-build
    yarn gulp compile-extensions-build-legacy
    yarn gulp compile-extensions-build
J
Joao Moreno 已提交
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
    VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
      yarn gulp vscode-linux-$VSCODE_ARCH-min-ci
    VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
      yarn gulp vscode-reh-linux-$VSCODE_ARCH-min-ci
    VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
      yarn gulp vscode-web-linux-$VSCODE_ARCH-min-ci
  displayName: Build

- script: |
    set -e
    yarn gulp "electron-$(VSCODE_ARCH)"

    # xvfb seems to be crashing often, let's make sure it's always up
    service xvfb start

    DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests"
    # yarn smoketest -- --build "$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)"
  displayName: Run unit tests
  condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))

- script: |
    set -e
    AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
    AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
    VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
    VSCODE_HOCKEYAPP_TOKEN="$(vscode-hockeyapp-token)" \
    ./build/azure-pipelines/linux/publish.sh
  displayName: Publish

J
Joao Moreno 已提交
122 123 124 125
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
  displayName: 'Component Detection'
  continueOnError: true

J
Joao Moreno 已提交
126 127 128 129 130
- task: PublishPipelineArtifact@0
  displayName: 'Publish Pipeline Artifact'
  inputs:
    artifactName: snap-$(VSCODE_ARCH)
    targetPath: .build/linux/snap-tarball