mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
add native arm64 builds for Windows (#21196)
This commit is contained in:
@@ -12,6 +12,7 @@ const files = [
|
||||
'.build/langpacks/**/*.vsix',
|
||||
'.build/extensions/**/*.vsix',
|
||||
'.build/win32-x64/**/*.{exe,zip}',
|
||||
'.build/win32-arm64/**/*.{exe,zip}',
|
||||
'.build/linux/sha256hashes.txt',
|
||||
'.build/linux/deb/amd64/deb/*.deb',
|
||||
'.build/linux/rpm/x86_64/*.rpm',
|
||||
|
||||
@@ -13,7 +13,8 @@ import * as fs from 'fs';
|
||||
const files = [
|
||||
'.build/langpacks/**/*.vsix', // langpacks
|
||||
'.build/extensions/**/*.vsix', // external extensions
|
||||
'.build/win32-x64/**/*.{exe,zip}', // windows binaries
|
||||
'.build/win32-x64/**/*.{exe,zip}', // windows x64 binaries
|
||||
'.build/win32-arm64/**/*.{exe,zip}', // windows arm64 binaries
|
||||
'.build/linux/sha256hashes.txt', // linux hashes
|
||||
'.build/linux/deb/amd64/deb/*.deb', // linux debs
|
||||
'.build/linux/rpm/x86_64/*.rpm', // linux rpms
|
||||
|
||||
@@ -106,17 +106,28 @@ stages:
|
||||
timeoutInMinutes: 90
|
||||
|
||||
- stage: Windows
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], true))
|
||||
condition: and(succeeded(), or(eq(variables['VSCODE_BUILD_WIN32'], true), eq(variables['VSCODE_BUILD_WIN32_ARM64'], true)))
|
||||
pool:
|
||||
vmImage: 'windows-2019'
|
||||
dependsOn:
|
||||
- Compile
|
||||
jobs:
|
||||
- job: Windows
|
||||
- job: Windows_x64
|
||||
variables:
|
||||
VSCODE_ARCH: x64
|
||||
steps:
|
||||
- template: win32/sql-product-build-win32.yml
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
|
||||
timeoutInMinutes: 90
|
||||
|
||||
- job: Windows_ARM64
|
||||
variables:
|
||||
VSCODE_ARCH: arm64
|
||||
RUN_TESTS: false # Do not run tests for arm64 build
|
||||
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
|
||||
steps:
|
||||
- template: win32/sql-product-build-win32.yml
|
||||
timeoutInMinutes: 90
|
||||
|
||||
# disable due to invalid machine pool (karlb 3/9/2022)
|
||||
# - job: Windows_Test
|
||||
# condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
$Arch = "x64"
|
||||
$Arch = $env:VSCODE_ARCH
|
||||
|
||||
$Repo = "$(pwd)"
|
||||
$Root = "$Repo\.."
|
||||
|
||||
@@ -48,7 +48,7 @@ steps:
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { node build/azure-pipelines/common/sql-computeNodeModulesCacheKey.js > .build/yarnlockhash }
|
||||
exec { node build/azure-pipelines/common/sql-computeNodeModulesCacheKey.js $(VSCODE_ARCH) > .build/yarnlockhash }
|
||||
displayName: Prepare yarn cache key
|
||||
|
||||
- task: Cache@2
|
||||
@@ -69,6 +69,7 @@ steps:
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
$env:npm_config_arch="$(VSCODE_ARCH)"
|
||||
$env:CHILD_CONCURRENCY="1"
|
||||
exec { yarn --frozen-lockfile }
|
||||
env:
|
||||
@@ -102,8 +103,8 @@ steps:
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { yarn gulp "package-rebuild-extensions" }
|
||||
exec { yarn gulp "vscode-win32-x64-min-ci" }
|
||||
exec { yarn gulp "vscode-win32-x64-inno-updater" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-min-ci" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-inno-updater" }
|
||||
displayName: Build
|
||||
env:
|
||||
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
|
||||
@@ -117,7 +118,7 @@ steps:
|
||||
vstsFeed: '2191dd5f-4aec-491b-ac50-568bbc331c8a'
|
||||
vstsFeedPackage: '2e355f03-a97e-499a-949b-f02d62b6160c'
|
||||
vstsPackageVersion: '*'
|
||||
condition: and(succeeded(), eq(variables['VSCODE_QUALITY'], 'saw'))
|
||||
condition: and(succeeded(), eq(variables['VSCODE_QUALITY'], 'saw'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
- powershell: |
|
||||
# Install TSGOps specific extensions
|
||||
@@ -130,7 +131,7 @@ steps:
|
||||
Move-Item $tempFilePath $zipFilePath
|
||||
Expand-Archive $zipFilePath -DestinationPath $adsExtensionPath
|
||||
displayName: Install SAW Extensions
|
||||
condition: and(succeeded(), eq(variables['VSCODE_QUALITY'], 'saw'))
|
||||
condition: and(succeeded(), eq(variables['VSCODE_QUALITY'], 'saw'), ne(variables['VSCODE_ARCH'], 'arm64'))
|
||||
|
||||
# - powershell: | @anthonydresser unit tests timeout never existing the node process
|
||||
# . build/azure-pipelines/win32/exec.ps1
|
||||
@@ -158,7 +159,7 @@ steps:
|
||||
displayName: 'Sign out code'
|
||||
inputs:
|
||||
ConnectedServiceName: 'Code Signing'
|
||||
FolderPath: '$(agent.builddirectory)/azuredatastudio-win32-x64'
|
||||
FolderPath: '$(agent.builddirectory)/azuredatastudio-win32-$(VSCODE_ARCH)'
|
||||
Pattern: '*.exe,*.node,resources/app/node_modules.asar.unpacked/*.dll,swiftshader/*.dll,d3dcompiler_47.dll,vulkan-1.dll,libGLESv2.dll,ffmpeg.dll,libEGL.dll,Microsoft.SqlTools.Hosting.dll,Microsoft.SqlTools.ResourceProvider.Core.dll,Microsoft.SqlTools.ResourceProvider.DefaultImpl.dll,MicrosoftSqlToolsCredentials.dll,MicrosoftSqlToolsServiceLayer.dll,Newtonsoft.Json.dll,SqlSerializationService.dll,SqlToolsResourceProviderService.dll,Microsoft.SqlServer.*.dll,Microsoft.Data.Tools.Sql.BatchParser.dll'
|
||||
signConfigType: inlineSignParams
|
||||
inlineOperation: |
|
||||
@@ -212,9 +213,9 @@ steps:
|
||||
- powershell: |
|
||||
. build/azure-pipelines/win32/exec.ps1
|
||||
$ErrorActionPreference = "Stop"
|
||||
exec { yarn gulp "vscode-win32-x64-user-setup" }
|
||||
exec { yarn gulp "vscode-win32-x64-system-setup" }
|
||||
exec { yarn gulp "vscode-win32-x64-archive" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-user-setup" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-system-setup" }
|
||||
exec { yarn gulp "vscode-win32-$(VSCODE_ARCH)-archive" }
|
||||
displayName: Archive & User & System setup
|
||||
|
||||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||||
|
||||
@@ -8,32 +8,40 @@ Param(
|
||||
$env:AZURE_STORAGE_ACCESS_KEY_2 = $storageKey
|
||||
$env:AZURE_DOCUMENTDB_MASTERKEY = $documentDbKey
|
||||
|
||||
$ExeName = "AzureDataStudioSetup.exe"
|
||||
$SystemExe = "$artifactsDir\win32-x64\system-setup\$ExeName"
|
||||
$UserExe = "$artifactsDir\win32-x64\user-setup\$ExeName"
|
||||
$UserExeName = "AzureDataStudioUserSetup.exe"
|
||||
$ZipName = "azuredatastudio-win32-x64.zip"
|
||||
$Zip = "$artifactsDir\win32-x64\archive\$ZipName"
|
||||
$Flavors = "x64","arm64"
|
||||
$FlavorSuffixes = "","-arm64"
|
||||
|
||||
$VersionJson = Get-Content -Raw -Path "$artifactsDir\version.json" | ConvertFrom-Json
|
||||
$Version = $VersionJson.version
|
||||
$Quality = $VersionJson.quality
|
||||
$CommitId = $VersionJson.commit
|
||||
For($i = 0; $i -lt $Flavors.Length; $i++)
|
||||
{
|
||||
$Flavor = $Flavors[$i]
|
||||
$FlavorSuffix = $FlavorSuffixes[$i]
|
||||
$ExeName = "AzureDataStudioSetup.exe"
|
||||
$SystemExe = "$artifactsDir\win32-$Flavor\system-setup\$ExeName"
|
||||
$UserExe = "$artifactsDir\win32-$Flavor\user-setup\$ExeName"
|
||||
$UserExeName = "AzureDataStudioUserSetup.exe"
|
||||
$ZipName = "azuredatastudio-win32-$Flavor.zip"
|
||||
$Zip = "$artifactsDir\win32-$Flavor\archive\$ZipName"
|
||||
|
||||
$ZipUploadName = "azuredatastudio-windows-$Version"
|
||||
$SetupUploadName = "azuredatastudio-windows-setup-$Version"
|
||||
$UserUploadName = "azuredatastudio-windows-user-setup-$Version"
|
||||
$VersionJson = Get-Content -Raw -Path "$artifactsDir\version.json" | ConvertFrom-Json
|
||||
$Version = $VersionJson.version
|
||||
$Quality = $VersionJson.quality
|
||||
$CommitId = $VersionJson.commit
|
||||
|
||||
$assetPlatform = "win32-x64"
|
||||
$ZipUploadName = "azuredatastudio-windows$FlavorSuffix-$Version"
|
||||
$SetupUploadName = "azuredatastudio-windows$FlavorSuffix-setup-$Version"
|
||||
$UserUploadName = "azuredatastudio-windows$FlavorSuffix-user-setup-$Version"
|
||||
|
||||
If (-NOT ($Quality -eq "stable")) {
|
||||
$ZipUploadName = "$ZipUploadName-$Quality"
|
||||
$SetupUploadName = "$SetupUploadName-$Quality"
|
||||
$UserUploadName = "$UserUploadName-$Quality"
|
||||
$assetPlatform = "win32-$Flavor"
|
||||
|
||||
If (-NOT ($Quality -eq "stable")) {
|
||||
$ZipUploadName = "$ZipUploadName-$Quality"
|
||||
$SetupUploadName = "$SetupUploadName-$Quality"
|
||||
$UserUploadName = "$UserUploadName-$Quality"
|
||||
}
|
||||
|
||||
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-archive" archive "$ZipUploadName.zip" $Version true $Zip $CommitId
|
||||
|
||||
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform" setup "$SetupUploadName.exe" $Version true $SystemExe $CommitId
|
||||
|
||||
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-user" setup "$UserUploadName.exe" $Version true $UserExe $CommitId
|
||||
}
|
||||
|
||||
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-archive" archive "$ZipUploadName.zip" $Version true $Zip $CommitId
|
||||
|
||||
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform" setup "$SetupUploadName.exe" $Version true $SystemExe $CommitId
|
||||
|
||||
node $sourcesDir/build/azure-pipelines/common/publish.js $Quality "$assetPlatform-user" setup "$UserUploadName.exe" $Version true $UserExe $CommitId
|
||||
|
||||
Reference in New Issue
Block a user