Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/build/azure-pipelines/product-publish.yml
3520 views
1
parameters:
2
- name: VSCODE_QUALITY
3
type: string
4
- name: VSCODE_SCHEDULEDBUILD
5
type: boolean
6
7
steps:
8
- template: ./common/checkout.yml@self
9
10
- task: NodeTool@0
11
inputs:
12
versionSource: fromFile
13
versionFilePath: .nvmrc
14
15
- task: AzureKeyVault@2
16
displayName: "Azure Key Vault: Get Secrets"
17
inputs:
18
azureSubscription: vscode
19
KeyVaultName: vscode-build-secrets
20
SecretsFilter: "github-distro-mixin-password"
21
22
- task: AzureKeyVault@2
23
displayName: "Azure Key Vault: Get ESRP Secrets"
24
inputs:
25
azureSubscription: vscode-esrp
26
KeyVaultName: vscode-esrp
27
SecretsFilter: esrp-auth,esrp-sign
28
29
# allow-any-unicode-next-line
30
- pwsh: Write-Host "##vso[build.addbuildtag]🚀"
31
displayName: Add build tag
32
33
- pwsh: |
34
npm ci
35
workingDirectory: build
36
env:
37
GITHUB_TOKEN: "$(github-distro-mixin-password)"
38
displayName: Install build dependencies
39
40
- download: current
41
patterns: "**/artifacts_processed_*.txt"
42
displayName: Download all artifacts_processed text files
43
44
- task: AzureCLI@2
45
displayName: Fetch secrets
46
inputs:
47
azureSubscription: vscode
48
scriptType: pscore
49
scriptLocation: inlineScript
50
addSpnToEnvironment: true
51
inlineScript: |
52
Write-Host "##vso[task.setvariable variable=AZURE_TENANT_ID]$env:tenantId"
53
Write-Host "##vso[task.setvariable variable=AZURE_CLIENT_ID]$env:servicePrincipalId"
54
Write-Host "##vso[task.setvariable variable=AZURE_ID_TOKEN;issecret=true]$env:idToken"
55
56
- pwsh: |
57
. build/azure-pipelines/win32/exec.ps1
58
59
if (Test-Path "$(Pipeline.Workspace)/artifacts_processed_*/artifacts_processed_*.txt") {
60
Write-Host "Artifacts already processed so a build must have already been created."
61
return
62
}
63
64
$VERSION = node -p "require('./package.json').version"
65
Write-Host "Creating build with version: $VERSION"
66
exec { node build/azure-pipelines/common/createBuild.js $VERSION }
67
env:
68
AZURE_TENANT_ID: "$(AZURE_TENANT_ID)"
69
AZURE_CLIENT_ID: "$(AZURE_CLIENT_ID)"
70
AZURE_ID_TOKEN: "$(AZURE_ID_TOKEN)"
71
displayName: Create build if it hasn't been created before
72
73
- pwsh: |
74
$publishAuthTokens = (node build/azure-pipelines/common/getPublishAuthTokens)
75
Write-Host "##vso[task.setvariable variable=PUBLISH_AUTH_TOKENS;issecret=true]$publishAuthTokens"
76
env:
77
AZURE_TENANT_ID: "$(AZURE_TENANT_ID)"
78
AZURE_CLIENT_ID: "$(AZURE_CLIENT_ID)"
79
AZURE_ID_TOKEN: "$(AZURE_ID_TOKEN)"
80
displayName: Get publish auth tokens
81
82
- pwsh: node build/azure-pipelines/common/publish.js
83
env:
84
GITHUB_TOKEN: "$(github-distro-mixin-password)"
85
AZURE_TENANT_ID: "$(AZURE_TENANT_ID)"
86
AZURE_CLIENT_ID: "$(AZURE_CLIENT_ID)"
87
AZURE_ID_TOKEN: "$(AZURE_ID_TOKEN)"
88
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
89
PUBLISH_AUTH_TOKENS: "$(PUBLISH_AUTH_TOKENS)"
90
RELEASE_TENANT_ID: "$(ESRP_TENANT_ID)"
91
RELEASE_CLIENT_ID: "$(ESRP_CLIENT_ID)"
92
RELEASE_AUTH_CERT: "$(esrp-auth)"
93
RELEASE_REQUEST_SIGNING_CERT: "$(esrp-sign)"
94
displayName: Process artifacts
95
retryCountOnTaskFailure: 3
96
97
- template: common/publish-artifact.yml@self
98
parameters:
99
targetPath: $(Pipeline.Workspace)/artifacts_processed_$(System.StageAttempt)/artifacts_processed_$(System.StageAttempt).txt
100
artifactName: artifacts_processed_$(System.StageAttempt)
101
displayName: Publish the artifacts processed for this stage attempt
102
sbomEnabled: false
103
condition: always()
104
105
- ${{ if and(in(parameters.VSCODE_QUALITY, 'insider', 'exploration'), eq(parameters.VSCODE_SCHEDULEDBUILD, true)) }}:
106
- script: node build/azure-pipelines/common/releaseBuild.js
107
env:
108
AZURE_TENANT_ID: "$(AZURE_TENANT_ID)"
109
AZURE_CLIENT_ID: "$(AZURE_CLIENT_ID)"
110
AZURE_ID_TOKEN: "$(AZURE_ID_TOKEN)"
111
displayName: Release build
112
113