mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-03-25 06:10:30 -04:00
* add remote build to the pipeline * add a separte compile step * fix darwin build * add linux container and fix docker creation * fix distro * remove system install and add xvfb start * distro * add logic to only run tests on hosted machine * fix yml * fix yml * add linux docker container * fix docker file * fixdocker * fix darwin * fix linux build * add cache salt to npm cache * intentially ignore kerberos binaries * disable docker for now * remove vsix from win32 * fix linxu and win32 * fix linux and win32 * fix linux and win32 * fix linux * maybe fix win32 * fix linux * fix linux image; disable server package for noe * fix minimatch for win32 test * fix linux build * add back in docker * fix test * use tmp directory insteado workspace * change name of docker image * try a differnt folder * fix download * add a git clean step * bump cache * fix issues with builidng * readd windows build, revert signing changes * simplify win32 server packaage * some more optimizations * use decompress task * add back in install for windows test * fix linux build * add integration test to bat file * make platform the same * add copy extension to windows test * revert tests back * fix vsix drop aquasition * inital changes * fix download * fix dependent on for release * just downlaod everything which makes it easier * setup pipeline artifacts * more clean up * fix linux * add logic to install extensions for integration tests * fix extension install * fix build failures * fix some issues * fix darwin drop * change linux build copy to js * fix darwin archive * fix copy artifacts and use it for windows * use for darinw * fix darwin * ad dep on linux * fix win32 * fix darwin * fix copy artifacts * mkdir p darwin * fix copy * add error handler * add more binaries * add more binaries * fix archive path on linux * add more options to integration extension install * add more binaries * add verbose to installer copy * fix ip rate issues * fix bat file for including extensions * move echo * add windows test condition * use powershell cmdlet rather than cp * remove verbose * remove compiling of extensions * fix pipelines * update docker location * fix copy item * fix signing on win32 * fix locations * move back to using cp * ensure the docker folder exists * test a createdrop script on darwin * wip * fix copy * add drop for linux * fix builds * fix drop * fix docker on linx * fix darwin * lets try this again * fix linux drop * i guess try the copy files task * add create drop for win32 * ensure windows drop location exists * fix extension install * just use mkdir * add better logic for installing extensions * ignore errors? * try force * testing * ok this should work * use production cli * fix liveshare vscodeignore * fix integration test script * revert changes to integration tests to fix them * try newitem * remove exec * explicitly clear last exit code * fix test build * revert publish scripts * add version json * fix tests * add back sources creation * this is stupid * fix clean positioning * add version information to drop * fix locations of artifacts in publush scripts
279 lines
10 KiB
YAML
279 lines
10 KiB
YAML
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: 'BuildCache'
|
||
platformIndependent: true
|
||
alias: 'Compilation'
|
||
|
||
- powershell: |
|
||
$ErrorActionPreference = "Stop"
|
||
exit 1
|
||
displayName: Check RestoreCache
|
||
condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
|
||
|
||
- task: NodeTool@0
|
||
inputs:
|
||
versionSpec: "10.15.1"
|
||
|
||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3
|
||
inputs:
|
||
versionSpec: "1.x"
|
||
|
||
- task: UsePythonVersion@0
|
||
inputs:
|
||
versionSpec: '2.x'
|
||
addToPath: true
|
||
|
||
- task: AzureKeyVault@1
|
||
displayName: 'Azure Key Vault: Get Secrets'
|
||
inputs:
|
||
azureSubscription: 'ClientToolsInfra_670062 (88d5392f-a34f-4769-b405-f597fc533613)'
|
||
KeyVaultName: ado-secrets
|
||
SecretsFilter: 'github-distro-mixin-password'
|
||
|
||
- powershell: |
|
||
. build/azure-pipelines/win32/exec.ps1
|
||
$ErrorActionPreference = "Stop"
|
||
"machine github.com`nlogin azuredatastudio`npassword $(github-distro-mixin-password)" | Out-File "$env:USERPROFILE\_netrc" -Encoding ASCII
|
||
|
||
exec { git config user.email "andresse@microsoft.com" }
|
||
exec { git config user.name "AzureDataStudio" }
|
||
displayName: Prepare tooling
|
||
|
||
- powershell: |
|
||
git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
|
||
git fetch distro
|
||
git merge $(node -p "require('./package.json').distro")
|
||
displayName: Merge distro
|
||
|
||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||
inputs:
|
||
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
|
||
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
|
||
vstsFeed: 'BuildCache'
|
||
|
||
- powershell: |
|
||
. build/azure-pipelines/win32/exec.ps1
|
||
$ErrorActionPreference = "Stop"
|
||
$env:CHILD_CONCURRENCY="1"
|
||
exec { yarn --frozen-lockfile }
|
||
displayName: Install dependencies
|
||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||
|
||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||
inputs:
|
||
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
|
||
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
|
||
vstsFeed: 'BuildCache'
|
||
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"
|
||
exec { yarn gulp "install-sqltoolsservice" }
|
||
displayName: Install sqltoolsservice
|
||
|
||
- powershell: |
|
||
. 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-reh-win32-x64-min-ci" }
|
||
exec { yarn gulp "vscode-reh-web-win32-x64-min-ci" }
|
||
displayName: Build
|
||
env:
|
||
VSCODE_MIXIN_PASSWORD: $(github-distro-mixin-password)
|
||
|
||
- powershell: |
|
||
. build/azure-pipelines/win32/exec.ps1
|
||
$ErrorActionPreference = "Stop"
|
||
exec { .\scripts\test-unstable.bat --build --coverage --reporter mocha-junit-reporter }
|
||
continueOnError: true
|
||
condition: and(succeeded(), eq(variables['RUN_UNSTABLE_TESTS'], 'true'))
|
||
displayName: Run unstable tests
|
||
|
||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||
displayName: 'Sign out code'
|
||
inputs:
|
||
ConnectedServiceName: 'Code Signing'
|
||
FolderPath: '$(agent.builddirectory)/azuredatastudio-win32-x64'
|
||
Pattern: '*.exe,*.node,resources/app/node_modules.asar.unpacked/*.dll,swiftshader/*.dll,d3dcompiler_47.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: |
|
||
[
|
||
{
|
||
"keyCode": "CP-230012",
|
||
"operationSetCode": "SigntoolSign",
|
||
"parameters": [
|
||
{
|
||
"parameterName": "OpusName",
|
||
"parameterValue": "Azure Data Studio"
|
||
},
|
||
{
|
||
"parameterName": "OpusInfo",
|
||
"parameterValue": "https://github.com/microsoft/azuredatastudio"
|
||
},
|
||
{
|
||
"parameterName": "PageHash",
|
||
"parameterValue": "/NPH"
|
||
},
|
||
{
|
||
"parameterName": "FileDigest",
|
||
"parameterValue": "/fd sha256"
|
||
},
|
||
{
|
||
"parameterName": "TimeStamp",
|
||
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||
}
|
||
],
|
||
"toolName": "signtool.exe",
|
||
"toolVersion": "6.2.9304.0"
|
||
},
|
||
{
|
||
"keyCode": "CP-230012",
|
||
"operationSetCode": "SigntoolVerify",
|
||
"parameters": [
|
||
{
|
||
"parameterName": "VerifyAll",
|
||
"parameterValue": "/all"
|
||
}
|
||
],
|
||
"toolName": "signtool.exe",
|
||
"toolVersion": "6.2.9304.0"
|
||
}
|
||
]
|
||
SessionTimeout: 600
|
||
MaxConcurrency: 5
|
||
MaxRetryAttempts: 20
|
||
condition: and(succeeded(), eq(variables['signed'], true))
|
||
|
||
- 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" }
|
||
displayName: Archive & User & System setup
|
||
|
||
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
|
||
displayName: 'Sign installers'
|
||
inputs:
|
||
ConnectedServiceName: 'Code Signing'
|
||
FolderPath: '.build'
|
||
Pattern: '*.exe'
|
||
signConfigType: inlineSignParams
|
||
inlineOperation: |
|
||
[
|
||
{
|
||
"keyCode": "CP-230012",
|
||
"operationSetCode": "SigntoolSign",
|
||
"parameters": [
|
||
{
|
||
"parameterName": "OpusName",
|
||
"parameterValue": "Azure Data Studio"
|
||
},
|
||
{
|
||
"parameterName": "OpusInfo",
|
||
"parameterValue": "https://github.com/microsoft/azuredatastudio"
|
||
},
|
||
{
|
||
"parameterName": "PageHash",
|
||
"parameterValue": "/NPH"
|
||
},
|
||
{
|
||
"parameterName": "FileDigest",
|
||
"parameterValue": "/fd sha256"
|
||
},
|
||
{
|
||
"parameterName": "TimeStamp",
|
||
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
||
}
|
||
],
|
||
"toolName": "signtool.exe",
|
||
"toolVersion": "6.2.9304.0"
|
||
},
|
||
{
|
||
"keyCode": "CP-230012",
|
||
"operationSetCode": "SigntoolVerify",
|
||
"parameters": [
|
||
{
|
||
"parameterName": "VerifyAll",
|
||
"parameterValue": "/all"
|
||
}
|
||
],
|
||
"toolName": "signtool.exe",
|
||
"toolVersion": "6.2.9304.0"
|
||
}
|
||
]
|
||
SessionTimeout: 600
|
||
MaxConcurrency: 5
|
||
MaxRetryAttempts: 20
|
||
condition: and(succeeded(), eq(variables['signed'], true))
|
||
|
||
- task: ArchiveFiles@2
|
||
displayName: 'Archive build scripts source'
|
||
inputs:
|
||
rootFolderOrFile: '$(Build.SourcesDirectory)/build'
|
||
archiveType: tar
|
||
archiveFile: '$(Build.BinariesDirectory)/source.tar.gz'
|
||
|
||
- task: PublishBuildArtifacts@1
|
||
displayName: 'Publish Artifact: build scripts source'
|
||
inputs:
|
||
PathtoPublish: '$(Build.BinariesDirectory)/source.tar.gz'
|
||
ArtifactName: source
|
||
|
||
- powershell: |
|
||
. build/azure-pipelines/win32/exec.ps1
|
||
$ErrorActionPreference = "Stop"
|
||
.\build\azure-pipelines\win32\createDrop.ps1
|
||
displayName: Create Drop
|
||
|
||
- task: PublishBuildArtifacts@1
|
||
displayName: 'Publish Artifact: drop'
|
||
|
||
- task: PublishTestResults@2
|
||
displayName: 'Publish Test Results test-results.xml'
|
||
inputs:
|
||
testResultsFiles: 'test-results.xml'
|
||
searchFolder: '$(Build.SourcesDirectory)'
|
||
failTaskOnFailedTests: true
|
||
continueOnError: true
|
||
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
|
||
|
||
- task: PublishTestResults@2
|
||
displayName: 'Publish Integration and Smoke Test Results'
|
||
inputs:
|
||
testResultsFiles: '*.xml'
|
||
searchFolder: '$(Build.ArtifactStagingDirectory)\test-results'
|
||
mergeTestResults: true
|
||
failTaskOnFailedTests: true
|
||
continueOnError: true
|
||
condition: and(succeeded(), eq(variables['RUN_TESTS'], 'true'))
|
||
|
||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||
displayName: 'Component Detection'
|
||
inputs:
|
||
failOnAlert: true
|