Skip to content

Commit 3b33743

Browse files
committed
Auto merge of #1918 - rust-lang:gha, r=JohnTitor
Serial Experiments GitHub Actions Let's start the party to close #1582.
2 parents 2cce551 + 9d9d15e commit 3b33743

File tree

15 files changed

+477
-336
lines changed

15 files changed

+477
-336
lines changed

.github/workflows/bors.yml

Lines changed: 306 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,306 @@
1+
name: CI (bors)
2+
3+
on:
4+
push:
5+
branches:
6+
- auto-libc
7+
- try
8+
9+
jobs:
10+
docker_linux_tier1:
11+
name: Docker Linux Tier1
12+
runs-on: ubuntu-18.04
13+
strategy:
14+
fail-fast: true
15+
matrix:
16+
target: [
17+
i686-unknown-linux-gnu,
18+
x86_64-unknown-linux-gnu,
19+
]
20+
steps:
21+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
22+
with:
23+
github_token: "${{ secrets.GITHUB_TOKEN }}"
24+
- uses: actions/checkout@v2
25+
- name: Setup Rust toolchain
26+
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
27+
- name: Execute run-docker.sh
28+
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}
29+
30+
macos:
31+
name: macOS
32+
runs-on: macos-10.15
33+
strategy:
34+
fail-fast: true
35+
matrix:
36+
target: [
37+
x86_64-apple-darwin,
38+
]
39+
steps:
40+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
41+
with:
42+
github_token: "${{ secrets.GITHUB_TOKEN }}"
43+
- uses: actions/checkout@v2
44+
- name: Setup Rust toolchain
45+
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
46+
- name: Execute run.sh
47+
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
48+
49+
windows:
50+
name: Windows
51+
runs-on: windows-2019
52+
env:
53+
OS: windows
54+
strategy:
55+
fail-fast: true
56+
matrix:
57+
include:
58+
- target: x86_64-pc-windows-gnu
59+
env:
60+
ARCH_BITS: 64
61+
ARCH: x86_64
62+
- target: x86_64-pc-windows-msvc
63+
# Disabled because broken:
64+
# https://github.com/rust-lang/libc/issues/1592
65+
#- target: i686-pc-windows-gnu
66+
# env:
67+
# ARCH_BITS: 32
68+
# ARCH: i686
69+
- target: i686-pc-windows-msvc
70+
steps:
71+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
72+
with:
73+
github_token: "${{ secrets.GITHUB_TOKEN }}"
74+
- uses: actions/checkout@v2
75+
- name: Setup Rust toolchain
76+
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
77+
shell: bash
78+
- name: Execute run.sh
79+
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
80+
shell: bash
81+
82+
style_and_docs:
83+
name: Style and docs
84+
runs-on: ubuntu-18.04
85+
strategy:
86+
fail-fast: true
87+
steps:
88+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
89+
with:
90+
github_token: "${{ secrets.GITHUB_TOKEN }}"
91+
- uses: actions/checkout@v2
92+
- name: Setup Rust toolchain
93+
run: sh ./ci/install-rust.sh
94+
- name: Check style
95+
run: sh ci/style.sh
96+
- name: Generate documentation
97+
run: LIBC_CI=1 sh ci/dox.sh
98+
99+
docker_linux_tier2:
100+
name: Docker Linux Tier2
101+
needs: [docker_linux_tier1, style_and_docs]
102+
runs-on: ubuntu-18.04
103+
strategy:
104+
fail-fast: true
105+
max-parallel: 10
106+
matrix:
107+
target: [
108+
aarch64-linux-android,
109+
aarch64-unknown-linux-gnu,
110+
aarch64-unknown-linux-musl,
111+
arm-linux-androideabi,
112+
arm-unknown-linux-gnueabihf,
113+
arm-unknown-linux-musleabihf,
114+
# FIXME: Disabled because currently broken, see:
115+
# https://github.com/rust-lang/libc/issues/1591
116+
# asmjs-unknown-emscripten,
117+
# FIXME: Disabled due to https://github.com/rust-lang/libc/issues/1765
118+
# i686-linux-android,
119+
i686-unknown-linux-musl,
120+
mips-unknown-linux-gnu,
121+
mips-unknown-linux-musl,
122+
mips64-unknown-linux-gnuabi64,
123+
mips64el-unknown-linux-gnuabi64,
124+
mipsel-unknown-linux-musl,
125+
# FIXME: Figure out why this is disabled.
126+
#powerpc-unknown-linux-gnu,
127+
powerpc64-unknown-linux-gnu,
128+
powerpc64le-unknown-linux-gnu,
129+
s390x-unknown-linux-gnu,
130+
riscv64gc-unknown-linux-gnu,
131+
# FIXME: Figure out why this is disabled.
132+
#wasm32-wasi,
133+
sparc64-unknown-linux-gnu,
134+
wasm32-unknown-emscripten,
135+
x86_64-linux-android,
136+
x86_64-unknown-linux-gnux32,
137+
x86_64-unknown-linux-musl,
138+
]
139+
steps:
140+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
141+
with:
142+
github_token: "${{ secrets.GITHUB_TOKEN }}"
143+
- uses: actions/checkout@v2
144+
- name: Setup Rust toolchain
145+
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
146+
- name: Execute run-docker.sh
147+
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}
148+
149+
# devkitpro's pacman needs to be connected from Docker.
150+
docker_switch:
151+
name: Docker Switch
152+
needs: [docker_linux_tier1, style_and_docs]
153+
runs-on: ubuntu-18.04
154+
strategy:
155+
fail-fast: true
156+
steps:
157+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
158+
with:
159+
github_token: "${{ secrets.GITHUB_TOKEN }}"
160+
- uses: actions/checkout@v2
161+
- name: Setup Rust toolchain
162+
run: sh ./ci/install-rust.sh
163+
- name: Execute run-docker.sh
164+
run: LIBC_CI=1 sh ./ci/run-docker.sh switch
165+
166+
build_channels_linux:
167+
name: Build Channels Linux
168+
needs: docker_linux_tier2
169+
runs-on: ubuntu-18.04
170+
env:
171+
OS: linux
172+
strategy:
173+
fail-fast: true
174+
max-parallel: 4
175+
matrix:
176+
toolchain: [
177+
stable,
178+
beta,
179+
nightly,
180+
1.13.0,
181+
1.19.0,
182+
1.24.0,
183+
1.25.0,
184+
1.30.0,
185+
]
186+
steps:
187+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
188+
with:
189+
github_token: "${{ secrets.GITHUB_TOKEN }}"
190+
- uses: actions/checkout@v2
191+
- name: Setup Rust toolchain
192+
run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh
193+
- name: Execute build.sh
194+
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh
195+
196+
build_channels_macos:
197+
name: Build Channels macOS
198+
needs: macos
199+
runs-on: macos-10.15
200+
env:
201+
OS: macos
202+
strategy:
203+
fail-fast: true
204+
max-parallel: 3
205+
matrix:
206+
toolchain: [
207+
stable,
208+
beta,
209+
nightly,
210+
1.13.0,
211+
1.19.0,
212+
1.24.0,
213+
1.25.0,
214+
1.30.0,
215+
]
216+
steps:
217+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
218+
with:
219+
github_token: "${{ secrets.GITHUB_TOKEN }}"
220+
- uses: actions/checkout@v2
221+
- name: Setup Rust toolchain
222+
run: TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/install-rust.sh
223+
- name: Execute build.sh
224+
run: LIBC_CI=1 TOOLCHAIN=${{ matrix.toolchain }} sh ./ci/build.sh
225+
226+
semver_linux:
227+
name: Semver Linux
228+
needs: build_channels_linux
229+
runs-on: ubuntu-18.04
230+
strategy:
231+
fail-fast: true
232+
steps:
233+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
234+
with:
235+
github_token: "${{ secrets.GITHUB_TOKEN }}"
236+
- uses: actions/checkout@v2
237+
- name: Setup Rust toolchain
238+
# FIXME: Pin nightly version to make semverver compilable.
239+
run: TOOLCHAIN=nightly-2020-06-18 sh ./ci/install-rust.sh
240+
- name: Check breaking changes
241+
run: sh ci/semver.sh linux
242+
243+
semver_macos:
244+
name: Semver macOS
245+
needs: build_channels_macos
246+
runs-on: macos-10.15
247+
strategy:
248+
fail-fast: true
249+
steps:
250+
- uses: rust-lang/simpleinfra/github-actions/cancel-outdated-builds@master
251+
with:
252+
github_token: "${{ secrets.GITHUB_TOKEN }}"
253+
- uses: actions/checkout@v2
254+
- name: Setup Rust toolchain
255+
# FIXME: Pin nightly version to make semverver compilable.
256+
run: TOOLCHAIN=nightly-2020-06-18 sh ./ci/install-rust.sh
257+
- name: Check breaking changes
258+
run: sh ci/semver.sh macos
259+
260+
# These jobs doesn't actually test anything, but they're only used to tell
261+
# bors the build completed, as there is no practical way to detect when a
262+
# workflow is successful listening to webhooks only.
263+
#
264+
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
265+
266+
end_success:
267+
name: bors build finished
268+
if: github.event.pusher.name == 'bors' && success()
269+
runs-on: ubuntu-18.04
270+
needs: [
271+
docker_linux_tier1,
272+
docker_linux_tier2,
273+
macos,
274+
windows,
275+
style_and_docs,
276+
docker_switch,
277+
build_channels_linux,
278+
build_channels_macos,
279+
semver_linux,
280+
semver_macos
281+
]
282+
283+
steps:
284+
- name: Mark the job as successful
285+
run: exit 0
286+
287+
end_failure:
288+
name: bors build finished
289+
if: github.event.pusher.name == 'bors' && (failure() || cancelled())
290+
runs-on: ubuntu-18.04
291+
needs: [
292+
docker_linux_tier1,
293+
docker_linux_tier2,
294+
macos,
295+
windows,
296+
style_and_docs,
297+
docker_switch,
298+
build_channels_linux,
299+
build_channels_macos,
300+
semver_linux,
301+
semver_macos
302+
]
303+
304+
steps:
305+
- name: Mark the job as a failure
306+
run: exit 1

.github/workflows/main.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened]
6+
push:
7+
branches:
8+
- master
9+
10+
jobs:
11+
docker_linux_tier1:
12+
name: Docker Linux Tier1
13+
runs-on: ubuntu-18.04
14+
strategy:
15+
fail-fast: true
16+
matrix:
17+
target: [
18+
i686-unknown-linux-gnu,
19+
x86_64-unknown-linux-gnu,
20+
]
21+
steps:
22+
- uses: actions/checkout@v2
23+
- name: Setup Rust toolchain
24+
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
25+
- name: Execute run-docker.sh
26+
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}
27+
28+
macos:
29+
name: macOS
30+
runs-on: macos-10.15
31+
strategy:
32+
fail-fast: true
33+
matrix:
34+
target: [
35+
x86_64-apple-darwin,
36+
]
37+
steps:
38+
- uses: actions/checkout@v2
39+
- name: Setup Rust toolchain
40+
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
41+
- name: Execute run.sh
42+
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
43+
44+
windows:
45+
name: Windows
46+
runs-on: windows-2019
47+
env:
48+
OS: windows
49+
strategy:
50+
fail-fast: true
51+
matrix:
52+
include:
53+
- target: x86_64-pc-windows-gnu
54+
env:
55+
ARCH_BITS: 64
56+
ARCH: x86_64
57+
- target: x86_64-pc-windows-msvc
58+
# Disabled because broken:
59+
# https://github.com/rust-lang/libc/issues/1592
60+
#- target: i686-pc-windows-gnu
61+
# env:
62+
# ARCH_BITS: 32
63+
# ARCH: i686
64+
- target: i686-pc-windows-msvc
65+
steps:
66+
- uses: actions/checkout@v2
67+
- name: Setup Rust toolchain
68+
run: TARGET=${{ matrix.target }} sh ./ci/install-rust.sh
69+
shell: bash
70+
- name: Execute run.sh
71+
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
72+
shell: bash
73+
74+
style_and_docs:
75+
name: Style and docs
76+
runs-on: ubuntu-18.04
77+
strategy:
78+
fail-fast: true
79+
steps:
80+
- uses: actions/checkout@v2
81+
- name: Setup Rust toolchain
82+
run: sh ./ci/install-rust.sh
83+
- name: Check style
84+
run: sh ci/style.sh
85+
- name: Generate documentation
86+
run: LIBC_CI=1 sh ci/dox.sh

0 commit comments

Comments
 (0)