Path: blob/main/build/azure-pipelines/linux/cli-build-linux.yml
3520 views
parameters:1- name: VSCODE_BUILD_LINUX2type: boolean3default: false4- name: VSCODE_BUILD_LINUX_ARM645type: boolean6default: false7- name: VSCODE_BUILD_LINUX_ARMHF8type: boolean9default: false10- name: VSCODE_CHECK_ONLY11type: boolean12default: false13- name: VSCODE_QUALITY14type: string1516steps:17- template: ../common/checkout.yml@self1819- task: NodeTool@020inputs:21versionSource: fromFile22versionFilePath: .nvmrc2324- template: ../cli/cli-apply-patches.yml@self2526- task: Npm@127displayName: Download openssl prebuilt28inputs:29command: custom30customCommand: pack @vscode-internal/openssl-prebuilt@0.0.1131customRegistry: useFeed32customFeed: "Monaco/openssl-prebuilt"33workingDir: $(Build.ArtifactStagingDirectory)3435- script: |36set -e37mkdir $(Build.ArtifactStagingDirectory)/openssl38tar -xvzf $(Build.ArtifactStagingDirectory)/vscode-internal-openssl-prebuilt-0.0.11.tgz --strip-components=1 --directory=$(Build.ArtifactStagingDirectory)/openssl39displayName: Extract openssl prebuilt4041- script: node build/setup-npm-registry.js $NPM_REGISTRY build42condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))43displayName: Setup NPM Registry4445- script: |46set -e47# Set the private NPM registry to the global npmrc file48# so that authentication works for subfolders like build/, remote/, extensions/ etc49# which does not have their own .npmrc file50npm config set registry "$NPM_REGISTRY"51echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"52condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))53displayName: Setup NPM5455- task: npmAuthenticate@056inputs:57workingFile: $(NPMRC_PATH)58condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))59displayName: Setup NPM Authentication6061- script: |62set -e6364for i in {1..5}; do # try 5 times65npm ci && break66if [ $i -eq 5 ]; then67echo "Npm install failed too many times" >&268exit 169fi70echo "Npm install failed $i, trying again..."71done72workingDirectory: build73env:74GITHUB_TOKEN: "$(github-distro-mixin-password)"75displayName: Install build dependencies7677- script: |78set -e79mkdir -p $(Build.SourcesDirectory)/.build80displayName: Create .build folder for misc dependencies8182- template: ../cli/install-rust-posix.yml@self83parameters:84targets:85- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:86- aarch64-unknown-linux-gnu87- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:88- x86_64-unknown-linux-gnu89- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true) }}:90- armv7-unknown-linux-gnueabihf9192- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:93- template: ../cli/cli-compile.yml@self94parameters:95VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}96VSCODE_CLI_TARGET: aarch64-unknown-linux-gnu97VSCODE_CLI_ARTIFACT: vscode_cli_linux_arm64_cli98VSCODE_CHECK_ONLY: ${{ parameters.VSCODE_CHECK_ONLY }}99VSCODE_CLI_ENV:100OPENSSL_LIB_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm64-linux/lib101OPENSSL_INCLUDE_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm64-linux/include102SYSROOT_ARCH: arm64103104- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:105- template: ../cli/cli-compile.yml@self106parameters:107VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}108VSCODE_CLI_TARGET: x86_64-unknown-linux-gnu109VSCODE_CLI_ARTIFACT: vscode_cli_linux_x64_cli110VSCODE_CHECK_ONLY: ${{ parameters.VSCODE_CHECK_ONLY }}111VSCODE_CLI_ENV:112OPENSSL_LIB_DIR: $(Build.ArtifactStagingDirectory)/openssl/x64-linux/lib113OPENSSL_INCLUDE_DIR: $(Build.ArtifactStagingDirectory)/openssl/x64-linux/include114SYSROOT_ARCH: amd64115116- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true) }}:117- template: ../cli/cli-compile.yml@self118parameters:119VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}120VSCODE_CLI_TARGET: armv7-unknown-linux-gnueabihf121VSCODE_CLI_ARTIFACT: vscode_cli_linux_armhf_cli122VSCODE_CHECK_ONLY: ${{ parameters.VSCODE_CHECK_ONLY }}123VSCODE_CLI_ENV:124OPENSSL_LIB_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm-linux/lib125OPENSSL_INCLUDE_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm-linux/include126SYSROOT_ARCH: armhf127128- ${{ if not(parameters.VSCODE_CHECK_ONLY) }}:129- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true) }}:130- template: ../common/publish-artifact.yml@self131parameters:132targetPath: $(Build.ArtifactStagingDirectory)/vscode_cli_linux_armhf_cli.tar.gz133artifactName: vscode_cli_linux_armhf_cli134displayName: Publish vscode_cli_linux_armhf_cli artifact135sbomBuildDropPath: $(Build.ArtifactStagingDirectory)/cli136sbomPackageName: "VS Code Linux armhf CLI"137sbomPackageVersion: $(Build.SourceVersion)138139- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:140- template: ../common/publish-artifact.yml@self141parameters:142targetPath: $(Build.ArtifactStagingDirectory)/vscode_cli_linux_x64_cli.tar.gz143artifactName: vscode_cli_linux_x64_cli144displayName: Publish vscode_cli_linux_x64_cli artifact145sbomBuildDropPath: $(Build.ArtifactStagingDirectory)/cli146sbomPackageName: "VS Code Linux x64 CLI"147sbomPackageVersion: $(Build.SourceVersion)148149- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:150- template: ../common/publish-artifact.yml@self151parameters:152targetPath: $(Build.ArtifactStagingDirectory)/vscode_cli_linux_arm64_cli.tar.gz153artifactName: vscode_cli_linux_arm64_cli154displayName: Publish vscode_cli_linux_arm64_cli artifact155sbomBuildDropPath: $(Build.ArtifactStagingDirectory)/cli156sbomPackageName: "VS Code Linux arm64 CLI"157sbomPackageVersion: $(Build.SourceVersion)158159160