product-build-win32.yml 7.1 KB
Newer Older
J
Joao Moreno 已提交
1 2 3
steps:
- task: NodeTool@0
  inputs:
A
Alex Dima 已提交
4
    versionSpec: "10.15.1"
J
Joao Moreno 已提交
5 6 7

- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
  inputs:
8
    versionSpec: "1.10.1"
J
Joao Moreno 已提交
9

J
Joao Moreno 已提交
10 11 12 13 14
- task: UsePythonVersion@0
  inputs:
    versionSpec: '2.x'
    addToPath: true

J
build  
Joao Moreno 已提交
15 16 17 18 19 20
- task: AzureKeyVault@1
  displayName: 'Azure Key Vault: Get Secrets'
  inputs:
    azureSubscription: 'vscode-builds-subscription'
    KeyVaultName: vscode

J
Joao Moreno 已提交
21
- powershell: |
J
Joao Moreno 已提交
22
    . build/azure-pipelines/win32/exec.ps1
J
Joao Moreno 已提交
23
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
24
    "machine monacotools.visualstudio.com`npassword $(devops-pat)`nmachine github.com`nlogin vscode`npassword $(github-distro-mixin-password)" | Out-File "$env:USERPROFILE\_netrc" -Encoding ASCII
J
Joao Moreno 已提交
25 26 27

    exec { git config user.email "vscode@microsoft.com" }
    exec { git config user.name "VSCode" }
J
Joao Moreno 已提交
28 29 30 31 32
  displayName: Prepare tooling

- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
33 34 35
    exec { git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git" }
    exec { git fetch distro }
    exec { git merge $(node -p "require('./package.json').distro") }
J
Joao Moreno 已提交
36
  displayName: Merge distro
J
Joao Moreno 已提交
37

J
Joao Moreno 已提交
38 39 40
- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
41 42
    $env:npm_config_arch="$(VSCODE_ARCH)"
    $env:CHILD_CONCURRENCY="1"
43
    exec { yarn --frozen-lockfile }
J
Joao Moreno 已提交
44 45 46 47 48
  displayName: Install dependencies

- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
49
    exec { yarn gulp mixin }
J
Joao Moreno 已提交
50 51 52 53 54
  displayName: Mix in quality

- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
55 56
    exec { yarn gulp hygiene }
    exec { yarn monaco-compile-check }
J
Joao Moreno 已提交
57
  displayName: Run hygiene checks
J
Joao Moreno 已提交
58
  condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
J
Joao Moreno 已提交
59 60 61 62

- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
63 64
    exec { node build/azure-pipelines/common/installDistroDependencies.js }
    exec { node build/azure-pipelines/common/installDistroDependencies.js remote }
J
Joao Moreno 已提交
65
    exec { node build/lib/builtInExtensions.js }
J
Joao Moreno 已提交
66
  displayName: Install distro dependencies and extensions
J
Joao Moreno 已提交
67

L
Logan Ramos 已提交
68 69 70
- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
71
    cd $env:BUILD_STAGINGDIRECTORY
L
Logan Ramos 已提交
72 73
    git clone https://github.com/microsoft/vscode-telemetry-extractor.git
    cd vscode-telemetry-extractor
74 75
    git checkout 3b04aba5bfdfcca1a5426cd2c51a90d18740d0bc
    npm i
L
Logan Ramos 已提交
76
    npm run setup-extension-repos
77 78 79 80 81
    node .\out\cli-extract.js --sourceDir $env:BUILD_SOURCESDIRECTORY --excludedDirPattern extensions  --outputDir . --applyEndpoints --includeIsMeasurement --patchWebsiteEvents
    node .\out\cli-extract-extensions.js --sourceDir .\src\telemetry-sources --outputDir . --applyEndpoints --includeIsMeasurement
    mkdir $env:BUILD_SOURCESDIRECTORY\.build\telemetry -ea 0
    mv declarations-resolved.json $env:BUILD_SOURCESDIRECTORY\.build\telemetry\telemetry-core.json
    mv declarations-extensions-resolved.json $env:BUILD_SOURCESDIRECTORY\.build\telemetry\telemetry-extensions.json
L
Logan Ramos 已提交
82 83
  displayName: Extract Telemetry

J
Joao Moreno 已提交
84 85 86
- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
87
    $env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
J
Joao Moreno 已提交
88 89 90 91 92
    exec { yarn gulp compile-build }
    exec { yarn gulp compile-extensions-build }
    exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-min-ci" }
    exec { yarn gulp "vscode-reh-win32-$env:VSCODE_ARCH-min-ci" }
    exec { yarn gulp "vscode-web-win32-$env:VSCODE_ARCH-min-ci" }
J
Joao Moreno 已提交
93
    exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-inno-updater" }
J
Joao Moreno 已提交
94
  displayName: Build
J
Joao Moreno 已提交
95 96 97 98

- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
99
    exec { yarn gulp "electron-$(VSCODE_ARCH)" }
J
Joao Moreno 已提交
100
    exec { .\scripts\test.bat --build --tfs "Unit Tests" }
J
Joao Moreno 已提交
101
  displayName: Run unit tests
J
Joao Moreno 已提交
102
  condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
D
Daniel Imms 已提交
103 104 105 106

- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
107
    exec { yarn gulp "electron-$(VSCODE_ARCH)" }
D
Daniel Imms 已提交
108
    exec { .\scripts\test-integration.bat --build --tfs "Integration Tests" }
J
Joao Moreno 已提交
109
  displayName: Run integration tests
J
Joao Moreno 已提交
110
  condition: and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
J
Joao Moreno 已提交
111 112 113 114

- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
  inputs:
    ConnectedServiceName: 'ESRP CodeSign'
A
Alex Dima 已提交
115
    FolderPath: '$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH),$(agent.builddirectory)/vscode-reh-win32-$(VSCODE_ARCH)'
J
Joao Moreno 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182
    Pattern: '*.dll,*.exe,*.node'
    signConfigType: inlineSignParams
    inlineOperation: |
      [
        {
          "keyCode": "CP-230012",
          "operationSetCode": "SigntoolSign",
          "parameters": [
            {
              "parameterName": "OpusName",
              "parameterValue": "VS Code"
            },
            {
              "parameterName": "OpusInfo",
              "parameterValue": "https://code.visualstudio.com/"
            },
            {
              "parameterName": "Append",
              "parameterValue": "/as"
            },
            {
              "parameterName": "FileDigest",
              "parameterValue": "/fd \"SHA256\""
            },
            {
              "parameterName": "PageHash",
              "parameterValue": "/NPH"
            },
            {
              "parameterName": "TimeStamp",
              "parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
            }
          ],
          "toolName": "sign",
          "toolVersion": "1.0"
        },
        {
          "keyCode": "CP-230012",
          "operationSetCode": "SigntoolVerify",
          "parameters": [
            {
              "parameterName": "VerifyAll",
              "parameterValue": "/all"
            }
          ],
          "toolName": "sign",
          "toolVersion": "1.0"
        }
      ]
    SessionTimeout: 120

- task: NuGetCommand@2
  displayName: Install ESRPClient.exe
  inputs:
    restoreSolution: 'build\azure-pipelines\win32\ESRPClient\packages.config'
    feedsToUse: config
    nugetConfigPath: 'build\azure-pipelines\win32\ESRPClient\NuGet.config'
    externalFeedCredentials: 3fc0b7f7-da09-4ae7-a9c8-d69824b1819b
    restoreDirectory: packages

- task: ESRPImportCertTask@1
  displayName: Import ESRP Request Signing Certificate
  inputs:
    ESRP: 'ESRP CodeSign'

- powershell: |
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
183
    .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1 -AuthCertificateBase64 $(esrp-auth-certificate) -AuthCertificateKey $(esrp-auth-certificate-key)
J
Joao Moreno 已提交
184 185 186 187 188
  displayName: Import ESRP Auth Certificate

- powershell: |
    . build/azure-pipelines/win32/exec.ps1
    $ErrorActionPreference = "Stop"
J
Joao Moreno 已提交
189
    $env:AZURE_STORAGE_ACCESS_KEY_2 = "$(vscode-storage-key)"
J
build  
Joao Moreno 已提交
190
    $env:AZURE_DOCUMENTDB_MASTERKEY = "$(builds-docdb-key-readwrite)"
J
Joao Moreno 已提交
191
    $env:VSCODE_HOCKEYAPP_TOKEN = "$(vscode-hockeyapp-token)"
192
    $env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
J
Joao Moreno 已提交
193 194
    .\build\azure-pipelines\win32\publish.ps1
  displayName: Publish
J
Joao Moreno 已提交
195 196 197 198

- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
  displayName: 'Component Detection'
  continueOnError: true