full fledged arm64 build

上级 04be06ff
...@@ -7,157 +7,157 @@ resources: ...@@ -7,157 +7,157 @@ resources:
image: snapcore/snapcraft:stable image: snapcore/snapcraft:stable
jobs: jobs:
# - job: Compile - job: Compile
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# container: vscode-x64 container: vscode-x64
# steps: steps:
# - template: product-compile.yml - template: product-compile.yml
# - job: Windows - job: Windows
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
# pool: pool:
# vmImage: VS2017-Win2016 vmImage: VS2017-Win2016
# variables: variables:
# VSCODE_ARCH: x64 VSCODE_ARCH: x64
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: win32/product-build-win32.yml - template: win32/product-build-win32.yml
# - job: Windows32 - job: Windows32
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
# pool: pool:
# vmImage: VS2017-Win2016 vmImage: VS2017-Win2016
# variables: variables:
# VSCODE_ARCH: ia32 VSCODE_ARCH: ia32
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: win32/product-build-win32.yml - template: win32/product-build-win32.yml
- job: WindowsARM64 - job: WindowsARM64
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
pool: pool:
vmImage: VS2017-Win2016 vmImage: VS2017-Win2016
variables: variables:
VSCODE_ARCH: arm64 VSCODE_ARCH: arm64
# dependsOn: dependsOn:
# - Compile - Compile
steps: steps:
- template: win32/product-build-win32-arm64.yml - template: win32/product-build-win32-arm64.yml
# - job: Linux - job: Linux
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# container: vscode-x64 container: vscode-x64
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: linux/product-build-linux.yml - template: linux/product-build-linux.yml
# - job: LinuxSnap - job: LinuxSnap
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX'], 'true'))
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# container: snapcraft container: snapcraft
# dependsOn: Linux dependsOn: Linux
# steps: steps:
# - template: linux/snap-build-linux.yml - template: linux/snap-build-linux.yml
# - job: LinuxArmhf - job: LinuxArmhf
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true'))
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# variables: variables:
# VSCODE_ARCH: armhf VSCODE_ARCH: armhf
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: linux/product-build-linux-multiarch.yml - template: linux/product-build-linux-multiarch.yml
# - job: LinuxArm64 - job: LinuxArm64
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ARM64'], 'true'))
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# variables: variables:
# VSCODE_ARCH: arm64 VSCODE_ARCH: arm64
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: linux/product-build-linux-multiarch.yml - template: linux/product-build-linux-multiarch.yml
# - job: LinuxAlpine - job: LinuxAlpine
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# variables: variables:
# VSCODE_ARCH: alpine VSCODE_ARCH: alpine
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: linux/product-build-linux-multiarch.yml - template: linux/product-build-linux-multiarch.yml
# - job: LinuxWeb - job: LinuxWeb
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WEB'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_WEB'], 'true'))
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# variables: variables:
# VSCODE_ARCH: x64 VSCODE_ARCH: x64
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: web/product-build-web.yml - template: web/product-build-web.yml
# - job: macOS - job: macOS
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_MACOS'], 'true')) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
# pool: pool:
# vmImage: macOS-latest vmImage: macOS-latest
# dependsOn: dependsOn:
# - Compile - Compile
# steps: steps:
# - template: darwin/product-build-darwin.yml - template: darwin/product-build-darwin.yml
# - job: Release - job: Release
# condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule')))) condition: and(succeeded(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'), or(eq(variables['VSCODE_RELEASE'], 'true'), and(or(eq(variables['VSCODE_QUALITY'], 'insider'), eq(variables['VSCODE_QUALITY'], 'exploration')), eq(variables['Build.Reason'], 'Schedule'))))
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# dependsOn: dependsOn:
# - Windows - Windows
# - Windows32 - Windows32
# - Linux - Linux
# - LinuxSnap - LinuxSnap
# - LinuxArmhf - LinuxArmhf
# - LinuxArm64 - LinuxArm64
# - LinuxAlpine - LinuxAlpine
# - macOS - macOS
# steps: steps:
# - template: release.yml - template: release.yml
# - job: Mooncake - job: Mooncake
# pool: pool:
# vmImage: 'Ubuntu-16.04' vmImage: 'Ubuntu-16.04'
# condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false')) condition: and(succeededOrFailed(), eq(variables['VSCODE_COMPILE_ONLY'], 'false'))
# dependsOn: dependsOn:
# - Windows - Windows
# - Windows32 - Windows32
# - Linux - Linux
# - LinuxSnap - LinuxSnap
# - LinuxArmhf - LinuxArmhf
# - LinuxArm64 - LinuxArm64
# - LinuxAlpine - LinuxAlpine
# - LinuxWeb - LinuxWeb
# - macOS - macOS
# steps: steps:
# - template: sync-mooncake.yml - template: sync-mooncake.yml
trigger: none trigger: none
pr: none pr: none
# schedules: schedules:
# - cron: "0 5 * * Mon-Fri" - cron: "0 5 * * Mon-Fri"
# displayName: Mon-Fri at 7:00 displayName: Mon-Fri at 7:00
# branches: branches:
# include: include:
# - master - master
steps: steps:
- powershell: |
mkdir .build -ea 0
"$env:BUILD_SOURCEVERSION" | Out-File -Encoding ascii -NoNewLine .build\commit
"$env:VSCODE_QUALITY" | Out-File -Encoding ascii -NoNewLine .build\quality
displayName: Prepare cache flag
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .build/commit, .build/quality'
targetfolder: '.build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min'
vstsFeed: 'npm-vscode'
platformIndependent: true
alias: 'Compilation'
- powershell: |
$ErrorActionPreference = "Stop"
exit 1
displayName: Check RestoreCache
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
- task: NodeTool@0 - task: NodeTool@0
inputs: inputs:
versionSpec: "12.13.0" versionSpec: "12.13.0"
...@@ -12,6 +32,38 @@ steps: ...@@ -12,6 +32,38 @@ steps:
versionSpec: '2.x' versionSpec: '2.x'
addToPath: true addToPath: true
- task: AzureKeyVault@1
displayName: 'Azure Key Vault: Get Secrets'
inputs:
azureSubscription: 'vscode-builds-subscription'
KeyVaultName: vscode
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
"machine github.com`nlogin vscode`npassword $(github-distro-mixin-password)" | Out-File "$env:USERPROFILE\_netrc" -Encoding ASCII
exec { git config user.email "vscode@microsoft.com" }
exec { git config user.name "VSCode" }
mkdir .build -ea 0
"$(VSCODE_ARCH)" | Out-File -Encoding ascii -NoNewLine .build\arch
displayName: Prepare tooling
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
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") }
displayName: Merge distro
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
keyfile: 'build/.cachesalt, .build/arch, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'npm-vscode'
- powershell: | - powershell: |
. build/azure-pipelines/win32/exec.ps1 . build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop" $ErrorActionPreference = "Stop"
...@@ -19,3 +71,120 @@ steps: ...@@ -19,3 +71,120 @@ steps:
$env:CHILD_CONCURRENCY="1" $env:CHILD_CONCURRENCY="1"
exec { yarn --frozen-lockfile } exec { yarn --frozen-lockfile }
displayName: Install dependencies displayName: Install dependencies
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
inputs:
keyfile: 'build/.cachesalt, .build/arch, .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'], 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { yarn postinstall }
displayName: Run postinstall scripts
condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
exec { node build/azure-pipelines/mixin }
displayName: Mix in quality
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-min-ci" }
exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-code-helper" }
# exec { yarn gulp "vscode-win32-$env:VSCODE_ARCH-inno-updater" }
displayName: Build
# - task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
# inputs:
# ConnectedServiceName: 'ESRP CodeSign'
# FolderPath: '$(agent.builddirectory)/VSCode-win32-$(VSCODE_ARCH),$(agent.builddirectory)/vscode-reh-win32-$(VSCODE_ARCH)'
# 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"
# .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1 -AuthCertificateBase64 $(esrp-auth-certificate) -AuthCertificateKey $(esrp-auth-certificate-key)
# displayName: Import ESRP Auth Certificate
- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
$env:AZURE_STORAGE_ACCESS_KEY_2 = "$(vscode-storage-key)"
$env:AZURE_DOCUMENTDB_MASTERKEY = "$(builds-docdb-key-readwrite)"
$env:VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)"
.\build\azure-pipelines\win32\publish.ps1
displayName: Publish
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
continueOnError: true
...@@ -3,7 +3,11 @@ $ErrorActionPreference = "Stop" ...@@ -3,7 +3,11 @@ $ErrorActionPreference = "Stop"
$Arch = "$env:VSCODE_ARCH" $Arch = "$env:VSCODE_ARCH"
exec { yarn gulp "vscode-win32-$Arch-archive" "vscode-win32-$Arch-system-setup" "vscode-win32-$Arch-user-setup" --sign } if ("$Arch" -eq "arm64") {
exec { yarn gulp "vscode-win32-$Arch-archive" }
} else {
exec { yarn gulp "vscode-win32-$Arch-archive" "vscode-win32-$Arch-system-setup" "vscode-win32-$Arch-user-setup" --sign }
}
$Repo = "$(pwd)" $Repo = "$(pwd)"
$Root = "$Repo\.." $Root = "$Repo\.."
...@@ -16,16 +20,21 @@ $ServerZip = "$Repo\.build\vscode-server-win32-$Arch.zip" ...@@ -16,16 +20,21 @@ $ServerZip = "$Repo\.build\vscode-server-win32-$Arch.zip"
$Build = "$Root\VSCode-win32-$Arch" $Build = "$Root\VSCode-win32-$Arch"
# Create server archive # Create server archive
exec { xcopy $LegacyServer $Server /H /E /I } if ("$Arch" -ne "arm64") {
exec { .\node_modules\7zip\7zip-lite\7z.exe a -tzip $ServerZip $Server -r } exec { xcopy $LegacyServer $Server /H /E /I }
exec { .\node_modules\7zip\7zip-lite\7z.exe a -tzip $ServerZip $Server -r }
}
# get version # get version
$PackageJson = Get-Content -Raw -Path "$Build\resources\app\package.json" | ConvertFrom-Json $PackageJson = Get-Content -Raw -Path "$Build\resources\app\package.json" | ConvertFrom-Json
$Version = $PackageJson.version $Version = $PackageJson.version
$AssetPlatform = if ("$Arch" -eq "ia32") { "win32" } else { "win32-x64" } $AssetPlatform = if ("$Arch" -eq "ia32") { "win32" } else { "win32-$Arch" }
exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform-archive" archive "VSCode-win32-$Arch-$Version.zip" $Zip } exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform-archive" archive "VSCode-win32-$Arch-$Version.zip" $Zip }
exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform" setup "VSCodeSetup-$Arch-$Version.exe" $SystemExe }
exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform-user" setup "VSCodeUserSetup-$Arch-$Version.exe" $UserExe } if ("$Arch" -ne "arm64") {
exec { node build/azure-pipelines/common/createAsset.js "server-$AssetPlatform" archive "vscode-server-win32-$Arch.zip" $ServerZip } exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform" setup "VSCodeSetup-$Arch-$Version.exe" $SystemExe }
exec { node build/azure-pipelines/common/createAsset.js "$AssetPlatform-user" setup "VSCodeUserSetup-$Arch-$Version.exe" $UserExe }
exec { node build/azure-pipelines/common/createAsset.js "server-$AssetPlatform" archive "vscode-server-win32-$Arch.zip" $ServerZip }
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册