Skip to content

Commit 06ccbe3

Browse files
committed
Serial Experiments GitHub Actions (DockerLinuxTier2, macOS, and Windows)
1 parent 478e6ae commit 06ccbe3

File tree

1 file changed

+226
-3
lines changed

1 file changed

+226
-3
lines changed

.github/workflows/main.yml

Lines changed: 226 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ jobs:
3131
- name: Install target
3232
run: |
3333
set -ex
34-
if [ -n "${{ matrix.target }}" ]; then
35-
rustup target add ${{ matrix.target }}
36-
fi
34+
rustup target add ${{ matrix.target }}
3735
3836
- name: Query Rust and Cargo versions
3937
run: |
@@ -62,3 +60,228 @@ jobs:
6260
6361
- name: Execute run-docker.sh
6462
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}
63+
64+
65+
docker_linux_tier2:
66+
name: Docker Linux Tier2
67+
runs-on: ubuntu-18.04
68+
strategy:
69+
fail-fast: false
70+
max-parallel: 10
71+
matrix:
72+
target: [
73+
aarch64-linux-android,
74+
aarch64-unknown-linux-gnu,
75+
aarch64-unknown-linux-musl,
76+
arm-linux-androideabi,
77+
arm-unknown-linux-gnueabihf,
78+
arm-unknown-linux-musleabihf,
79+
# FIXME: Disabled because currently broken, see:
80+
# https://github.com/rust-lang/libc/issues/1591
81+
# asmjs-unknown-emscripten,
82+
# FIXME: Disabled due to https://github.com/rust-lang/libc/issues/1765
83+
# i686-linux-android,
84+
i686-unknown-linux-musl,
85+
mips-unknown-linux-gnu,
86+
mips-unknown-linux-musl,
87+
mips64-unknown-linux-gnuabi64,
88+
mips64el-unknown-linux-gnuabi64,
89+
mipsel-unknown-linux-musl,
90+
# FIXME: Figure out why this is disabled.
91+
#powerpc-unknown-linux-gnu,
92+
powerpc64-unknown-linux-gnu,
93+
powerpc64le-unknown-linux-gnu,
94+
s390x-unknown-linux-gnu,
95+
riscv64gc-unknown-linux-gnu,
96+
# FIXME: Figure out why this is disabled.
97+
#wasm32-wasi,
98+
sparc64-unknown-linux-gnu,
99+
wasm32-unknown-emscripten,
100+
x86_64-linux-android,
101+
x86_64-unknown-linux-gnux32,
102+
x86_64-unknown-linux-musl,
103+
]
104+
steps:
105+
- uses: actions/checkout@v2
106+
107+
- name: Setup Rust toolchain
108+
run: |
109+
set -ex
110+
rustup set profile minimal
111+
rustup update --force nightly
112+
rustup default nightly
113+
114+
- name: Install target
115+
run: |
116+
set -ex
117+
rustup target add ${{ matrix.target }}
118+
119+
- name: Query Rust and Cargo versions
120+
run: |
121+
set -ex
122+
rustc -Vv
123+
cargo -V
124+
rustup -Vv
125+
rustup show
126+
which rustc
127+
which cargo
128+
which rustup
129+
130+
- name: Generate lockfile
131+
run: |
132+
set -ex
133+
N=5
134+
n=0
135+
until [ $n -ge $N ]
136+
do
137+
if cargo generate-lockfile ; then
138+
break
139+
fi
140+
n=$((n+1))
141+
sleep 1
142+
done
143+
144+
- name: Execute run-docker.sh
145+
run: LIBC_CI=1 sh ./ci/run-docker.sh ${{ matrix.target }}
146+
147+
macos:
148+
name: macOS
149+
runs-on: macos-10.15
150+
strategy:
151+
fail-fast: false
152+
matrix:
153+
target: [
154+
x86_64-apple-darwin,
155+
]
156+
steps:
157+
- uses: actions/checkout@v2
158+
159+
- name: Setup Rust toolchain
160+
run: |
161+
set -ex
162+
rustup set profile minimal
163+
rustup update --force nightly
164+
rustup default nightly
165+
166+
- name: Install target
167+
run: |
168+
set -ex
169+
rustup target add ${{ matrix.target }}
170+
171+
- name: Query Rust and Cargo versions
172+
run: |
173+
set -ex
174+
rustc -Vv
175+
cargo -V
176+
rustup -Vv
177+
rustup show
178+
which rustc
179+
which cargo
180+
which rustup
181+
182+
- name: Generate lockfile
183+
run: |
184+
set -ex
185+
N=5
186+
n=0
187+
until [ $n -ge $N ]
188+
do
189+
if cargo generate-lockfile ; then
190+
break
191+
fi
192+
n=$((n+1))
193+
sleep 1
194+
done
195+
196+
- name: Execute run.sh
197+
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
198+
199+
200+
windows:
201+
name: Windows
202+
runs-on: windows-2019
203+
strategy:
204+
fail-fast: false
205+
matrix:
206+
include:
207+
- target: x86_64-pc-windows-gnu
208+
env:
209+
ARCH_BITS: 64
210+
ARCH: x86_64
211+
- target: x86_64-pc-windows-msvc
212+
# Disabled because broken:
213+
# https://github.com/rust-lang/libc/issues/1592
214+
#- target: i686-pc-windows-gnu
215+
# env:
216+
# ARCH_BITS: 32
217+
# ARCH: i686
218+
- target: i686-pc-windows-msvc
219+
steps:
220+
- uses: actions/checkout@v2
221+
222+
- name: Setup Rust toolchain
223+
run: |
224+
rustup set profile minimal
225+
rustup update --force --no-self-update nightly-${{ matrix.target }}
226+
rustup default nightly-${{ matrix.target }}
227+
228+
- name: Install target
229+
run: rustup target add ${{ matrix.target }}
230+
231+
- name: Install MinGW32
232+
run: |
233+
set -ex
234+
if [[ ${ARCH_BITS} = "i686" ]]; then
235+
choco install mingw --x86 --force
236+
fi
237+
shell: bash
238+
239+
- name: Find GCC libraries
240+
run: |
241+
set -ex
242+
gcc -print-search-dirs
243+
/usr/bin/find "C:\ProgramData\Chocolatey" -name "crt2*"
244+
/usr/bin/find "C:\ProgramData\Chocolatey" -name "dllcrt2*"
245+
/usr/bin/find "C:\ProgramData\Chocolatey" -name "libmsvcrt*"
246+
shell: bash
247+
248+
- name: Fix MinGW
249+
run: |
250+
set -ex
251+
if [[ -n ${ARCH_BITS} ]]; then
252+
for i in crt2.o dllcrt2.o libmingwex.a libmsvcrt.a ; do
253+
cp -f "/C/ProgramData/Chocolatey/lib/mingw/tools/install/mingw${ARCH_BITS}/${ARCH}-w64-mingw32/lib/$i" "`rustc --print sysroot`/lib/rustlib/${TARGET}/lib"
254+
done
255+
fi
256+
shell: bash
257+
258+
- name: Query Rust and Cargo versions
259+
run: |
260+
set -ex
261+
rustc -Vv
262+
cargo -V
263+
rustup -Vv
264+
rustup show
265+
which rustc
266+
which cargo
267+
which rustup
268+
shell: bash
269+
270+
- name: Generate lockfile
271+
run: |
272+
set -ex
273+
N=5
274+
n=0
275+
until [ $n -ge $N ]
276+
do
277+
if cargo generate-lockfile ; then
278+
break
279+
fi
280+
n=$((n+1))
281+
sleep 1
282+
done
283+
shell: bash
284+
285+
- name: Execute run.sh
286+
run: LIBC_CI=1 sh ./ci/run.sh ${{ matrix.target }}
287+
shell: bash

0 commit comments

Comments
 (0)