Skip to content

Commit 05cd893

Browse files
committed
ci: drone: use zig-bootstrap tarball instead of system toolchain
1 parent 16c5cba commit 05cd893

File tree

3 files changed

+50
-9
lines changed

3 files changed

+50
-9
lines changed

ci/drone/drone.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,28 @@ platform:
77

88
steps:
99
- name: build
10-
image: ziglang/static-base:llvm12-aarch64-3
10+
image: ziglang/static-base:llvm12-aarch64-5
1111
commands:
1212
- ./ci/drone/linux_script_build
1313

1414
- name: test-1
1515
depends_on:
1616
- build
17-
image: ziglang/static-base:llvm12-aarch64-3
17+
image: ziglang/static-base:llvm12-aarch64-5
1818
commands:
1919
- ./ci/drone/linux_script_test 1
2020

2121
- name: test-2
2222
depends_on:
2323
- build
24-
image: ziglang/static-base:llvm12-aarch64-3
24+
image: ziglang/static-base:llvm12-aarch64-5
2525
commands:
2626
- ./ci/drone/linux_script_test 2
2727

2828
- name: test-3
2929
depends_on:
3030
- build
31-
image: ziglang/static-base:llvm12-aarch64-3
31+
image: ziglang/static-base:llvm12-aarch64-5
3232
commands:
3333
- ./ci/drone/linux_script_test 3
3434

@@ -38,7 +38,7 @@ steps:
3838
- test-1
3939
- test-2
4040
- test-3
41-
image: ziglang/static-base:llvm12-aarch64-3
41+
image: ziglang/static-base:llvm12-aarch64-5
4242
environment:
4343
SRHT_OAUTH_TOKEN:
4444
from_secret: SRHT_OAUTH_TOKEN

ci/drone/linux_script_build

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,30 @@
22

33
. ./ci/drone/linux_script_base
44

5-
apk update
6-
apk add samurai
5+
PREFIX="/deps/local"
6+
ZIG="$PREFIX/bin/zig"
7+
TARGET="$TRIPLEARCH-linux-musl"
8+
MCPU="baseline"
9+
10+
export CC="$ZIG cc -target $TARGET -mcpu=$MCPU"
11+
export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
12+
13+
# The `CMAKE_AR` parameter will consider any spaces to
14+
# be part of the executable path rather than CLI args, so we have
15+
# to create wrapper scripts for `zig ar` and zig ranlib`.
16+
17+
cat <<'ENDFILE' >$PREFIX/bin/ar
18+
#!/bin/sh
19+
/deps/local/bin/zig ar $@
20+
ENDFILE
21+
22+
cat <<'ENDFILE' >$PREFIX/bin/ranlib
23+
#!/bin/sh
24+
/deps/local/bin/zig ranlib $@
25+
ENDFILE
26+
27+
chmod +x $PREFIX/bin/ar
28+
chmod +x $PREFIX/bin/ranlib
729

830
# Make the `zig version` number consistent.
931
# This will affect the cmake command below.
@@ -13,6 +35,25 @@ git fetch --tags
1335

1436
mkdir build
1537
cd build
16-
cmake .. -DCMAKE_BUILD_TYPE=Release "-DCMAKE_INSTALL_PREFIX=$DISTDIR" -DZIG_STATIC=ON -DCMAKE_PREFIX_PATH=/deps/local -GNinja
38+
cmake .. \
39+
-DCMAKE_INSTALL_PREFIX="$DISTDIR" \
40+
-DCMAKE_PREFIX_PATH="$PREFIX" \
41+
-DCMAKE_BUILD_TYPE=Release \
42+
-DCMAKE_AR="$PREFIX/bin/ar" \
43+
-DCMAKE_RANLIB="$PREFIX/bin/ranlib" \
44+
-DZIG_TARGET_TRIPLE="$TARGET" \
45+
-DZIG_TARGET_MCPU="$MCPU" \
46+
-DZIG_STATIC=ON \
47+
-GNinja
48+
49+
# Now CMake will use Zig as the C/C++ compiler. We reset the environment variables
50+
# so that installation and testing do not get affected by them.
51+
unset CC
52+
unset CXX
53+
samu install
1754

55+
# Here we rebuild Zig but this time using the Zig binary we just now produced to
56+
# build zig1.o rather than relying on the one built with stage0. See
57+
# https://github.com/ziglang/zig/issues/6830 for more details.
58+
cmake .. -DZIG_EXECUTABLE="$DISTDIR/bin/zig"
1859
samu install

ci/drone/linux_script_finalize

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ if [ -n "$DRONE_PULL_REQUEST" ]; then
77
fi
88

99
apk update
10-
apk add py3-pip xz perl-utils jq curl samurai
10+
apk add py3-pip perl-utils jq curl
1111
pip3 install s3cmd
1212

1313
cd build

0 commit comments

Comments
 (0)