@@ -52,21 +52,25 @@ steps:
5252 git merge $(node -p "require('./package.json').distro")
5353 displayName : Merge distro
5454
55+ - script : |
56+ echo -n $VSCODE_ARCH > .build/arch
57+ displayName : Prepare arch cache flag
58+
5559- task : 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
5660 inputs :
57- keyfile : ' build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
61+ keyfile : ' .build/arch, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
5862 targetfolder : ' **/node_modules, !**/node_modules/**/node_modules'
5963 vstsFeed : ' npm-vscode'
6064
6165- script : |
6266 set -e
63- CHILD_CONCURRENCY=1 yarn --frozen-lockfile
67+ CHILD_CONCURRENCY=1 npm_config_arch=$(NPM_ARCH) yarn --frozen-lockfile
6468 displayName : Install dependencies
6569 condition : and(succeeded(), ne(variables['CacheRestored'], 'true'))
6670
6771- task : 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
6872 inputs :
69- keyfile : ' build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
73+ keyfile : ' .build/arch, build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
7074 targetfolder : ' **/node_modules, !**/node_modules/**/node_modules'
7175 vstsFeed : ' npm-vscode'
7276 condition : and(succeeded(), ne(variables['CacheRestored'], 'true'))
@@ -85,64 +89,64 @@ steps:
8589- script : |
8690 set -e
8791 VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
88- yarn gulp vscode-linux-x64 -min-ci
92+ yarn gulp vscode-linux-$(VSCODE_ARCH) -min-ci
8993 VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
90- yarn gulp vscode-reh-linux-x64 -min-ci
94+ yarn gulp vscode-reh-linux-$(VSCODE_ARCH) -min-ci
9195 VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
92- yarn gulp vscode-reh-web-linux-x64 -min-ci
96+ yarn gulp vscode-reh-web-linux-$(VSCODE_ARCH) -min-ci
9397 displayName : Build
9498
9599- script : |
96100 set -e
97101 service xvfb start
98102 displayName : Start xvfb
99- condition : and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
103+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables[' VSCODE_STEP_ON_IT'], 'false'))
100104
101105- script : |
102106 set -e
103107 DISPLAY=:10 ./scripts/test.sh --build --tfs "Unit Tests"
104108 displayName : Run unit tests (Electron)
105- condition : and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
109+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables[' VSCODE_STEP_ON_IT'], 'false'))
106110
107111- script : |
108112 set -e
109113 DISPLAY=:10 yarn test-browser --build --browser chromium --tfs "Browser Unit Tests"
110114 displayName : Run unit tests (Browser)
111- condition : and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
115+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables[' VSCODE_STEP_ON_IT'], 'false'))
112116
113117- script : |
114118 # Figure out the full absolute path of the product we just built
115119 # including the remote server and configure the integration tests
116120 # to run with these builds instead of running out of sources.
117121 set -e
118- APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64
122+ APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
119123 APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
120124 INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
121- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-x64 " \
125+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH) " \
122126 DISPLAY=:10 ./scripts/test-integration.sh --build --tfs "Integration Tests"
123127 displayName : Run integration tests (Electron)
124- condition : and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
128+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables[' VSCODE_STEP_ON_IT'], 'false'))
125129
126130- script : |
127131 set -e
128- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-x64 " \
132+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-linux-$(VSCODE_ARCH) " \
129133 DISPLAY=:10 ./resources/server/test/test-web-integration.sh --browser chromium
130134 displayName : Run integration tests (Browser)
131- condition : and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
135+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables[' VSCODE_STEP_ON_IT'], 'false'))
132136
133137- script : |
134138 set -e
135- APP_ROOT=$(agent.builddirectory)/VSCode-linux-x64
139+ APP_ROOT=$(agent.builddirectory)/VSCode-linux-$(VSCODE_ARCH)
136140 APP_NAME=$(node -p "require(\"$APP_ROOT/resources/app/product.json\").applicationName")
137141 INTEGRATION_TEST_ELECTRON_PATH="$APP_ROOT/$APP_NAME" \
138- VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-x64 " \
142+ VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-linux-$(VSCODE_ARCH) " \
139143 DISPLAY=:10 ./resources/server/test/test-remote-integration.sh
140144 displayName : Run remote integration tests (Electron)
141- condition : and(succeeded(), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
145+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables[' VSCODE_STEP_ON_IT'], 'false'))
142146
143147- task : PublishPipelineArtifact@0
144148 inputs :
145- artifactName : crash-dump-linux
149+ artifactName : ' crash-dump-linux-$(VSCODE_ARCH) '
146150 targetPath : .build/crashes
147151 displayName : ' Publish Crash Reports'
148152 continueOnError : true
@@ -157,15 +161,26 @@ steps:
157161
158162- script : |
159163 set -e
160- yarn gulp "vscode-linux-x64-build-deb"
161- yarn gulp "vscode-linux-x64-build-rpm"
162- yarn gulp "vscode-linux-x64-prepare-snap"
163- displayName : Build packages
164+ yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-deb"
165+ yarn gulp "vscode-linux-$(VSCODE_ARCH)-build-rpm"
166+ displayName : Build deb, rpm packages
167+
168+ - script : |
169+ set -e
170+ yarn gulp "vscode-linux-$(VSCODE_ARCH)-prepare-snap"
171+ displayName : Prepare snap package
172+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
173+
174+ # needed for code signing
175+ - task : UseDotNet@2
176+ displayName : ' Install .NET Core SDK 2.x'
177+ inputs :
178+ version : 2.x
164179
165180- task : SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
166181 inputs :
167182 ConnectedServiceName : ' ESRP CodeSign'
168- FolderPath : ' .build/linux/rpm/x86_64 '
183+ FolderPath : ' .build/linux/rpm'
169184 Pattern : ' *.rpm'
170185 signConfigType : inlineSignParams
171186 inlineOperation : |
@@ -186,14 +201,16 @@ steps:
186201 AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
187202 AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
188203 VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
204+ VSCODE_ARCH="$(VSCODE_ARCH)" \
189205 ./build/azure-pipelines/linux/publish.sh
190206 displayName : Publish
191207
192208- task : PublishPipelineArtifact@0
193209 displayName : ' Publish Pipeline Artifact'
194210 inputs :
195- artifactName : snap-x64
211+ artifactName : ' snap-$(VSCODE_ARCH) '
196212 targetPath : .build/linux/snap-tarball
213+ condition : and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'))
197214
198215- task : ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
199216 displayName : ' Component Detection'
0 commit comments