product-compile.yml 4.6 KB
Newer Older
J
Joao Moreno 已提交
1 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 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 122 123 124
steps:
- script: |
    mkdir -p .build
    echo $BUILD_SOURCEVERSION > .build/commit
  displayName: Prepare cache flag

- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
  inputs:
    keyfile: '.build/commit'
    targetfolder: '.build, out-build'
    vstsFeed: 'npm-vscode'
    alias: 'Compilation'

- task: NodeTool@0
  inputs:
    versionSpec: "10.15.1"
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
  inputs:
    versionSpec: "1.10.1"
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- task: AzureKeyVault@1
  displayName: 'Azure Key Vault: Get Secrets'
  inputs:
    azureSubscription: 'vscode-builds-subscription'
    KeyVaultName: vscode
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- 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
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- script: |
    set -e
    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
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
  inputs:
    keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
    targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
    vstsFeed: 'npm-vscode'
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- script: |
    set -e
    yarn --frozen-lockfile
  displayName: Install dependencies
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))

- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
  inputs:
    keyfile: '.yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
    targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
    vstsFeed: 'npm-vscode'
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'), ne(variables['CacheRestored'], 'true'))

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

- script: |
    set -e
    yarn gulp mixin
  displayName: Mix in quality
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

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

- script: |
    set -e
    cd $BUILD_STAGINGDIRECTORY
    git clone https://github.com/microsoft/vscode-telemetry-extractor.git
    cd vscode-telemetry-extractor
    git checkout 3b04aba5bfdfcca1a5426cd2c51a90d18740d0bc
    npm i
    npm run setup-extension-repos
    node ./out/cli-extract.js --sourceDir $BUILD_SOURCESDIRECTORY --excludedDirPattern extensions  --outputDir . --applyEndpoints --includeIsMeasurement --patchWebsiteEvents
    node ./out/cli-extract-extensions.js --sourceDir ./src/telemetry-sources --outputDir . --applyEndpoints --includeIsMeasurement
    mkdir -p $BUILD_SOURCESDIRECTORY/.build/telemetry
    mv declarations-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-core.json
    mv declarations-extensions-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-extensions.json
  displayName: Extract Telemetry
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- script: |
    set -e
    yarn gulp compile-build
    yarn gulp compile-extensions-build
  displayName: Compile
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))

- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
  inputs:
    keyfile: '.build/commit'
    targetfolder: '.build, out-build'
    vstsFeed: 'npm-vscode'
    alias: 'Compilation'
  condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))