Skip to content

Commit 4f3ebfc

Browse files
authored
Build from Azure Pipelines (#144)
Currently, extensions that we ship have to build this binary themselves. This PR will allow us to build these once and consume the packages during extension build.
1 parent 12f5cb1 commit 4f3ebfc

File tree

4 files changed

+175
-0
lines changed

4 files changed

+175
-0
lines changed

azure-pipelines/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pre-release.yml: This should build from the `main` branch and publish to the Azure Pipeline feed. This will be consumed by extensions that are also doing pre-release builds. Signing is required on this build.
2+
3+
stable.yml: This should build from the `release/*` branch and publish to the Azure Pipeline feed. This will be consumed by extensions when publishing stable builds. Signing is required on this build.
4+
5+
playground.yml: This pipeline is for engineering/testing purposes so we can do fixes and tests without affecting the pipeline feeds. This will not publish to the Azure Pipeline feed. Signing is not required on this build.

azure-pipelines/playground.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
trigger: none
2+
pr: none
3+
# Should only ever be manually run.
4+
5+
resources:
6+
repositories:
7+
- repository: templates
8+
type: github
9+
name: microsoft/vscode-engineering
10+
ref: kanadig/rust-binaries1 # TODO: Change this to `main` after `kanadig/rust-binaries1` is merged to `main`.
11+
endpoint: Monaco
12+
13+
extends:
14+
template: azure-pipelines/extension/pipeline.yml@templates
15+
parameters:
16+
ghCreateTag: false
17+
binaryName: "pet"
18+
signing: false
19+
buildWasm: false
20+
21+
buildPlatforms:
22+
- name: Linux
23+
vsceTarget: "web"
24+
- name: Linux
25+
packageArch: arm64
26+
vsceTarget: linux-arm64
27+
- name: Linux
28+
packageArch: arm
29+
vsceTarget: linux-armhf
30+
- name: Linux
31+
packageArch: x64
32+
vsceTarget: linux-x64
33+
- name: Linux
34+
packageArch: arm64
35+
vsceTarget: alpine-arm64
36+
- name: Linux
37+
packageArch: x64
38+
vsceTarget: alpine-x64
39+
- name: MacOS
40+
packageArch: arm64
41+
vsceTarget: darwin-arm64
42+
- name: MacOS
43+
packageArch: x64
44+
vsceTarget: darwin-x64
45+
- name: Windows
46+
packageArch: arm
47+
vsceTarget: win32-arm64
48+
- name: Windows
49+
packageArch: x64
50+
vsceTarget: win32-x64
51+
52+
preBuildSteps:
53+
- pwsh: Rename-Item -Path "./.cargo/config.toml.disabled" -NewName "config.toml"
54+
displayName: "Enable Azure Build config for Rust"

azure-pipelines/pre-release.yml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Run on a schedule
2+
trigger: none
3+
pr: none
4+
5+
schedules:
6+
- cron: "0 10 * * 1-5" # 10AM UTC (2AM PDT) MON-FRI (VS Code Pre-release builds at 9PM PDT)
7+
displayName: Nightly Pre-Release Schedule
8+
always: false # only run if there are source code changes
9+
branches:
10+
include:
11+
- main
12+
13+
resources:
14+
repositories:
15+
- repository: templates
16+
type: github
17+
name: microsoft/vscode-engineering
18+
ref: kanadig/rust-binaries1 # TODO: Change this to `main` after `kanadig/rust-binaries1` is merged to `main`.
19+
endpoint: Monaco
20+
21+
extends:
22+
template: azure-pipelines/extension/pipeline.yml@templates
23+
parameters:
24+
ghCreateTag: false
25+
binaryName: "pet"
26+
signing: false # TODO: remove this before consuming in extensions (currently extensions build and sign directly)
27+
buildWasm: false
28+
29+
buildPlatforms:
30+
- name: Linux
31+
vsceTarget: "web"
32+
- name: Linux
33+
packageArch: arm64
34+
vsceTarget: linux-arm64
35+
- name: Linux
36+
packageArch: arm
37+
vsceTarget: linux-armhf
38+
- name: Linux
39+
packageArch: x64
40+
vsceTarget: linux-x64
41+
- name: Linux
42+
packageArch: arm64
43+
vsceTarget: alpine-arm64
44+
- name: Linux
45+
packageArch: x64
46+
vsceTarget: alpine-x64
47+
- name: MacOS
48+
packageArch: arm64
49+
vsceTarget: darwin-arm64
50+
- name: MacOS
51+
packageArch: x64
52+
vsceTarget: darwin-x64
53+
- name: Windows
54+
packageArch: arm
55+
vsceTarget: win32-arm64
56+
- name: Windows
57+
packageArch: x64
58+
vsceTarget: win32-x64
59+
60+
preBuildSteps:
61+
- pwsh: Rename-Item -Path "./.cargo/config.toml.disabled" -NewName "config.toml"
62+
displayName: "Enable Azure Build config for Rust"

azure-pipelines/stable.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
trigger: none
2+
pr: none
3+
# Should only ever be manually run.
4+
5+
resources:
6+
repositories:
7+
- repository: templates
8+
type: github
9+
name: microsoft/vscode-engineering
10+
ref: kanadig/rust-binaries1 # TODO: Change this to `main` after `kanadig/rust-binaries1` is merged to `main`.
11+
endpoint: Monaco
12+
13+
extends:
14+
template: azure-pipelines/extension/pipeline.yml@templates
15+
parameters:
16+
ghCreateTag: false
17+
binaryName: "pet"
18+
signing: false # TODO: remove this before consuming in extensions (currently extensions build and sign directly)
19+
buildWasm: false
20+
21+
buildPlatforms:
22+
- name: Linux
23+
vsceTarget: "web"
24+
- name: Linux
25+
packageArch: arm64
26+
vsceTarget: linux-arm64
27+
- name: Linux
28+
packageArch: arm
29+
vsceTarget: linux-armhf
30+
- name: Linux
31+
packageArch: x64
32+
vsceTarget: linux-x64
33+
- name: Linux
34+
packageArch: arm64
35+
vsceTarget: alpine-arm64
36+
- name: Linux
37+
packageArch: x64
38+
vsceTarget: alpine-x64
39+
- name: MacOS
40+
packageArch: arm64
41+
vsceTarget: darwin-arm64
42+
- name: MacOS
43+
packageArch: x64
44+
vsceTarget: darwin-x64
45+
- name: Windows
46+
packageArch: arm
47+
vsceTarget: win32-arm64
48+
- name: Windows
49+
packageArch: x64
50+
vsceTarget: win32-x64
51+
52+
preBuildSteps:
53+
- pwsh: Rename-Item -Path "./.cargo/config.toml.disabled" -NewName "config.toml"
54+
displayName: "Enable Azure Build config for Rust"

0 commit comments

Comments
 (0)