Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/build/azure-pipelines/linux/cli-build-linux.yml
3520 views
1
parameters:
2
- name: VSCODE_BUILD_LINUX
3
type: boolean
4
default: false
5
- name: VSCODE_BUILD_LINUX_ARM64
6
type: boolean
7
default: false
8
- name: VSCODE_BUILD_LINUX_ARMHF
9
type: boolean
10
default: false
11
- name: VSCODE_CHECK_ONLY
12
type: boolean
13
default: false
14
- name: VSCODE_QUALITY
15
type: string
16
17
steps:
18
- template: ../common/checkout.yml@self
19
20
- task: NodeTool@0
21
inputs:
22
versionSource: fromFile
23
versionFilePath: .nvmrc
24
25
- template: ../cli/cli-apply-patches.yml@self
26
27
- task: Npm@1
28
displayName: Download openssl prebuilt
29
inputs:
30
command: custom
31
customCommand: pack @vscode-internal/openssl-prebuilt@0.0.11
32
customRegistry: useFeed
33
customFeed: "Monaco/openssl-prebuilt"
34
workingDir: $(Build.ArtifactStagingDirectory)
35
36
- script: |
37
set -e
38
mkdir $(Build.ArtifactStagingDirectory)/openssl
39
tar -xvzf $(Build.ArtifactStagingDirectory)/vscode-internal-openssl-prebuilt-0.0.11.tgz --strip-components=1 --directory=$(Build.ArtifactStagingDirectory)/openssl
40
displayName: Extract openssl prebuilt
41
42
- script: node build/setup-npm-registry.js $NPM_REGISTRY build
43
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
44
displayName: Setup NPM Registry
45
46
- script: |
47
set -e
48
# Set the private NPM registry to the global npmrc file
49
# so that authentication works for subfolders like build/, remote/, extensions/ etc
50
# which does not have their own .npmrc file
51
npm config set registry "$NPM_REGISTRY"
52
echo "##vso[task.setvariable variable=NPMRC_PATH]$(npm config get userconfig)"
53
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
54
displayName: Setup NPM
55
56
- task: npmAuthenticate@0
57
inputs:
58
workingFile: $(NPMRC_PATH)
59
condition: and(succeeded(), ne(variables['NPM_REGISTRY'], 'none'))
60
displayName: Setup NPM Authentication
61
62
- script: |
63
set -e
64
65
for i in {1..5}; do # try 5 times
66
npm ci && break
67
if [ $i -eq 5 ]; then
68
echo "Npm install failed too many times" >&2
69
exit 1
70
fi
71
echo "Npm install failed $i, trying again..."
72
done
73
workingDirectory: build
74
env:
75
GITHUB_TOKEN: "$(github-distro-mixin-password)"
76
displayName: Install build dependencies
77
78
- script: |
79
set -e
80
mkdir -p $(Build.SourcesDirectory)/.build
81
displayName: Create .build folder for misc dependencies
82
83
- template: ../cli/install-rust-posix.yml@self
84
parameters:
85
targets:
86
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:
87
- aarch64-unknown-linux-gnu
88
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
89
- x86_64-unknown-linux-gnu
90
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true) }}:
91
- armv7-unknown-linux-gnueabihf
92
93
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:
94
- template: ../cli/cli-compile.yml@self
95
parameters:
96
VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}
97
VSCODE_CLI_TARGET: aarch64-unknown-linux-gnu
98
VSCODE_CLI_ARTIFACT: vscode_cli_linux_arm64_cli
99
VSCODE_CHECK_ONLY: ${{ parameters.VSCODE_CHECK_ONLY }}
100
VSCODE_CLI_ENV:
101
OPENSSL_LIB_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm64-linux/lib
102
OPENSSL_INCLUDE_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm64-linux/include
103
SYSROOT_ARCH: arm64
104
105
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
106
- template: ../cli/cli-compile.yml@self
107
parameters:
108
VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}
109
VSCODE_CLI_TARGET: x86_64-unknown-linux-gnu
110
VSCODE_CLI_ARTIFACT: vscode_cli_linux_x64_cli
111
VSCODE_CHECK_ONLY: ${{ parameters.VSCODE_CHECK_ONLY }}
112
VSCODE_CLI_ENV:
113
OPENSSL_LIB_DIR: $(Build.ArtifactStagingDirectory)/openssl/x64-linux/lib
114
OPENSSL_INCLUDE_DIR: $(Build.ArtifactStagingDirectory)/openssl/x64-linux/include
115
SYSROOT_ARCH: amd64
116
117
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true) }}:
118
- template: ../cli/cli-compile.yml@self
119
parameters:
120
VSCODE_QUALITY: ${{ parameters.VSCODE_QUALITY }}
121
VSCODE_CLI_TARGET: armv7-unknown-linux-gnueabihf
122
VSCODE_CLI_ARTIFACT: vscode_cli_linux_armhf_cli
123
VSCODE_CHECK_ONLY: ${{ parameters.VSCODE_CHECK_ONLY }}
124
VSCODE_CLI_ENV:
125
OPENSSL_LIB_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm-linux/lib
126
OPENSSL_INCLUDE_DIR: $(Build.ArtifactStagingDirectory)/openssl/arm-linux/include
127
SYSROOT_ARCH: armhf
128
129
- ${{ if not(parameters.VSCODE_CHECK_ONLY) }}:
130
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARMHF, true) }}:
131
- template: ../common/publish-artifact.yml@self
132
parameters:
133
targetPath: $(Build.ArtifactStagingDirectory)/vscode_cli_linux_armhf_cli.tar.gz
134
artifactName: vscode_cli_linux_armhf_cli
135
displayName: Publish vscode_cli_linux_armhf_cli artifact
136
sbomBuildDropPath: $(Build.ArtifactStagingDirectory)/cli
137
sbomPackageName: "VS Code Linux armhf CLI"
138
sbomPackageVersion: $(Build.SourceVersion)
139
140
- ${{ if eq(parameters.VSCODE_BUILD_LINUX, true) }}:
141
- template: ../common/publish-artifact.yml@self
142
parameters:
143
targetPath: $(Build.ArtifactStagingDirectory)/vscode_cli_linux_x64_cli.tar.gz
144
artifactName: vscode_cli_linux_x64_cli
145
displayName: Publish vscode_cli_linux_x64_cli artifact
146
sbomBuildDropPath: $(Build.ArtifactStagingDirectory)/cli
147
sbomPackageName: "VS Code Linux x64 CLI"
148
sbomPackageVersion: $(Build.SourceVersion)
149
150
- ${{ if eq(parameters.VSCODE_BUILD_LINUX_ARM64, true) }}:
151
- template: ../common/publish-artifact.yml@self
152
parameters:
153
targetPath: $(Build.ArtifactStagingDirectory)/vscode_cli_linux_arm64_cli.tar.gz
154
artifactName: vscode_cli_linux_arm64_cli
155
displayName: Publish vscode_cli_linux_arm64_cli artifact
156
sbomBuildDropPath: $(Build.ArtifactStagingDirectory)/cli
157
sbomPackageName: "VS Code Linux arm64 CLI"
158
sbomPackageVersion: $(Build.SourceVersion)
159
160