Skip to content

Commit eb886b8

Browse files
petrutlucian94jiangliu
authored andcommitted
Add buildkite pipelines
At the moment, we're using Travis for vm-memory tests and buildkite for other crates. This change adds two buildkite pipelines: one for Windows, covering x86_64 MSVC builds and one for Linux, covering x86 and arm using the gnu standard C library as well as musl. We're using the same workflow as the other CIs, going with the Docker buildkite plugin and pointing to docker images that provide Rust build tools. Later on, those pipeline definitions can be moved to a common CI repository, being split in multiple pipelines (e.g. based on platform, standard library, etc) or even dynamically generated. Note that on Windows, we're enabling automatic retries (3 attempts by default) in order to avoid false positivies. Docker for Windows is not as stable as it should right now.
1 parent 8d0147d commit eb886b8

File tree

2 files changed

+234
-0
lines changed

2 files changed

+234
-0
lines changed

.buildkite/pipeline.linux.yml

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
steps:
2+
- label: "build-gnu-x86"
3+
commands:
4+
- cargo build --release
5+
retry:
6+
automatic: false
7+
agents:
8+
platform: x86_64.metal
9+
os: linux
10+
plugins:
11+
- docker#v3.0.1:
12+
image: "fandree/rust-vmm-dev"
13+
always-pull: true
14+
15+
- label: "build-gnu-x86-mmap"
16+
commands:
17+
- cargo build --release --features=backend-mmap
18+
retry:
19+
automatic: false
20+
agents:
21+
platform: x86_64.metal
22+
os: linux
23+
plugins:
24+
- docker#v3.0.1:
25+
image: "fandree/rust-vmm-dev"
26+
always-pull: true
27+
28+
- label: "build-gnu-arm-mmap"
29+
commands:
30+
- cargo build --release --features=backend-mmap
31+
retry:
32+
automatic: false
33+
agents:
34+
platform: arm.metal
35+
os: linux
36+
plugins:
37+
- docker#v3.0.1:
38+
image: "fandree/rust-vmm-dev"
39+
always-pull: true
40+
41+
- label: "build-musl-arm-mmap"
42+
commands:
43+
- cargo build --release --features=backend-mmap --target aarch64-unknown-linux-musl
44+
retry:
45+
automatic: false
46+
agents:
47+
platform: arm.metal
48+
os: linux
49+
plugins:
50+
- docker#v3.0.1:
51+
image: "fandree/rust-vmm-dev"
52+
always-pull: true
53+
54+
- label: "style"
55+
command: cargo fmt --all -- --check
56+
retry:
57+
automatic: false
58+
agents:
59+
platform: x86_64.metal
60+
os: linux
61+
plugins:
62+
- docker#v3.0.1:
63+
image: "fandree/rust-vmm-dev"
64+
always-pull: true
65+
66+
- label: "unittests-gnu-x86"
67+
commands:
68+
- cargo test --all-features
69+
retry:
70+
automatic: false
71+
agents:
72+
platform: x86_64.metal
73+
os: linux
74+
plugins:
75+
- docker#v3.0.1:
76+
image: "fandree/rust-vmm-dev"
77+
always-pull: true
78+
79+
- label: "unittests-musl-x86"
80+
commands:
81+
- cargo test --all-features --target x86_64-unknown-linux-musl
82+
retry:
83+
automatic: false
84+
agents:
85+
platform: x86_64.metal
86+
os: linux
87+
plugins:
88+
- docker#v3.0.1:
89+
image: "fandree/rust-vmm-dev"
90+
always-pull: true
91+
92+
- label: "unittests-gnu-arm"
93+
commands:
94+
- cargo test --all-features
95+
retry:
96+
automatic: false
97+
agents:
98+
platform: arm.metal
99+
os: linux
100+
plugins:
101+
- docker#v3.0.1:
102+
image: "fandree/rust-vmm-dev"
103+
always-pull: true
104+
105+
- label: "unittests-musl-arm"
106+
commands:
107+
- cargo test --all-features --target aarch64-unknown-linux-musl
108+
retry:
109+
automatic: false
110+
agents:
111+
platform: arm.metal
112+
os: linux
113+
plugins:
114+
- docker#v3.0.1:
115+
image: "fandree/rust-vmm-dev"
116+
always-pull: true
117+
118+
- label: "clippy-x86"
119+
commands:
120+
- cargo clippy --all
121+
retry:
122+
automatic: false
123+
agents:
124+
platform: x86_64.metal
125+
os: linux
126+
plugins:
127+
- docker#v3.0.1:
128+
image: "fandree/rust-vmm-dev"
129+
always-pull: true
130+
131+
- label: "check-warnings-x86"
132+
commands:
133+
- RUSTFLAGS="-D warnings" cargo check --all-targets
134+
retry:
135+
automatic: false
136+
agents:
137+
platform: x86_64.metal
138+
os: linux
139+
plugins:
140+
- docker#v3.0.1:
141+
image: "fandree/rust-vmm-dev"
142+
always-pull: true
143+
144+
- label: "check-warnings-arm"
145+
commands:
146+
- RUSTFLAGS="-D warnings" cargo check --all-targets
147+
retry:
148+
automatic: false
149+
agents:
150+
platform: arm.metal
151+
os: linux
152+
plugins:
153+
- docker#v3.0.1:
154+
image: "fandree/rust-vmm-dev"
155+
always-pull: true

.buildkite/pipeline.windows.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
steps:
2+
- label: "build-msvc-x86"
3+
commands:
4+
- cargo build --release
5+
retry:
6+
automatic: true
7+
agents:
8+
platform: x86_64
9+
os: windows
10+
plugins:
11+
- petrutlucian94/docker#v3.1.1:
12+
image: "lpetrut/rust_win_buildtools"
13+
always-pull: true
14+
15+
- label: "build-msvc-x86-mmap"
16+
commands:
17+
- cargo build --release --features=backend-mmap
18+
retry:
19+
automatic: true
20+
agents:
21+
platform: x86_64
22+
os: windows
23+
plugins:
24+
- petrutlucian94/docker#v3.1.1:
25+
image: "lpetrut/rust_win_buildtools"
26+
always-pull: true
27+
28+
- label: "style"
29+
command: cargo fmt --all -- --check
30+
retry:
31+
automatic: true
32+
agents:
33+
platform: x86_64
34+
os: windows
35+
plugins:
36+
- petrutlucian94/docker#v3.1.1:
37+
image: "lpetrut/rust_win_buildtools"
38+
always-pull: true
39+
40+
- label: "unittests-msvc-x86"
41+
commands:
42+
- cargo test --all-features
43+
retry:
44+
automatic: true
45+
agents:
46+
platform: x86_64
47+
os: windows
48+
plugins:
49+
- petrutlucian94/docker#v3.1.1:
50+
image: "lpetrut/rust_win_buildtools"
51+
always-pull: true
52+
53+
- label: "clippy-x86"
54+
commands:
55+
- cargo clippy --all
56+
retry:
57+
automatic: true
58+
agents:
59+
platform: x86_64
60+
os: windows
61+
plugins:
62+
- petrutlucian94/docker#v3.1.1:
63+
image: "lpetrut/rust_win_buildtools"
64+
always-pull: true
65+
66+
- label: "check-warnings-x86"
67+
commands:
68+
- cargo check --all-targets
69+
retry:
70+
automatic: true
71+
agents:
72+
platform: x86_64
73+
os: windows
74+
plugins:
75+
- petrutlucian94/docker#v3.1.1:
76+
image: "lpetrut/rust_win_buildtools"
77+
always-pull: true
78+
environment:
79+
- "RUSTFLAGS=-D warnings"

0 commit comments

Comments
 (0)