authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-08-11 00:29:40-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2022-08-19 16:45:15-07:00
log5b486b1851ce3ee930236653fc0f8b0ec3eef5e6
tree5afced6e929e10d015b5557a9800023b3943fc94
parenta8f86291d2c108fbc70de175660742a737b78823

CI: use zig build to produce release artifact

For both macOS and FreeBSD.

2 files changed, 40 insertions(+), 37 deletions(-)

ci/azure/macos_script+10-17
...@@ -34,13 +34,11 @@ git fetch --tags...@@ -34,13 +34,11 @@ git fetch --tags
34mkdir build34mkdir build
35cd build35cd build
36cmake .. \36cmake .. \
37 -DCMAKE_INSTALL_PREFIX="$(pwd)/stage2" \
38 -DCMAKE_PREFIX_PATH="$PREFIX" \37 -DCMAKE_PREFIX_PATH="$PREFIX" \
39 -DCMAKE_BUILD_TYPE=Release \38 -DCMAKE_BUILD_TYPE=Release \
40 -DZIG_TARGET_TRIPLE="$TARGET" \39 -DZIG_TARGET_TRIPLE="$TARGET" \
41 -DZIG_TARGET_MCPU="$MCPU" \40 -DZIG_TARGET_MCPU="$MCPU" \
42 -DZIG_STATIC=ON \41 -DZIG_STATIC=ON
43 -DZIG_OMIT_STAGE2=ON
4442
45# Now cmake will use zig as the C/C++ compiler. We reset the environment variables43# Now cmake will use zig as the C/C++ compiler. We reset the environment variables
46# so that installation and testing do not get affected by them.44# so that installation and testing do not get affected by them.
...@@ -49,13 +47,8 @@ unset CXX...@@ -49,13 +47,8 @@ unset CXX
4947
50make $JOBS install48make $JOBS install
5149
52# Here we rebuild zig but this time using the Zig binary we just now produced to50stage2/bin/zig build \
53# build zig1.o rather than relying on the one built with stage0. See51 --prefix stage3-release \
54# https://github.com/ziglang/zig/issues/6830 for more details.
55cmake .. -DZIG_EXECUTABLE="$(pwd)/stage2/bin/zig"
56make $JOBS install
57
58stage2/bin/zig build -p release \
59 --search-prefix "$PREFIX" \52 --search-prefix "$PREFIX" \
60 -Dstatic-llvm \53 -Dstatic-llvm \
61 -Drelease \54 -Drelease \
...@@ -63,21 +56,21 @@ stage2/bin/zig build -p release \...@@ -63,21 +56,21 @@ stage2/bin/zig build -p release \
63 -Dtarget="$TARGET" \56 -Dtarget="$TARGET" \
64 -Denable-stage157 -Denable-stage1
6558
66release/bin/zig build test docs \59stage3-release/bin/zig build test docs \
67 -Denable-macos-sdk \60 -Denable-macos-sdk \
68 -Dstatic-llvm \61 -Dstatic-llvm \
69 --search-prefix "$PREFIX"62 --search-prefix "$PREFIX"
7063
71if [ "${BUILD_REASON}" != "PullRequest" ]; then64if [ "${BUILD_REASON}" != "PullRequest" ]; then
72 mv ../LICENSE release/65 mv ../LICENSE stage3-release/
73 mv ../zig-cache/langref.html release/66 mv ../zig-cache/langref.html stage3-release/
74 mv release/bin/zig release/67 mv stage3-release/bin/zig stage3-release/
75 rmdir release/bin68 rmdir stage3-release/bin
7669
77 VERSION=$(release/zig version)70 VERSION=$(stage3-release/zig version)
78 DIRNAME="zig-macos-$ARCH-$VERSION"71 DIRNAME="zig-macos-$ARCH-$VERSION"
79 TARBALL="$DIRNAME.tar.xz"72 TARBALL="$DIRNAME.tar.xz"
80 mv release "$DIRNAME"73 mv stage3-release "$DIRNAME"
81 tar cfJ "$TARBALL" "$DIRNAME"74 tar cfJ "$TARBALL" "$DIRNAME"
8275
83 mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"76 mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
ci/srht/freebsd_script+30-20
...@@ -7,7 +7,9 @@ sudo pkg update -fq...@@ -7,7 +7,9 @@ sudo pkg update -fq
7sudo pkg install -y cmake py39-s3cmd wget curl jq samurai7sudo pkg install -y cmake py39-s3cmd wget curl jq samurai
88
9ZIGDIR="$(pwd)"9ZIGDIR="$(pwd)"
10CACHE_BASENAME="zig+llvm+lld+clang-x86_64-freebsd-gnu-0.10.0-dev.3524+74673b7f6"10TARGET="x86_64-freebsd-gnu"
11MCPU="baseline"
12CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.3524+74673b7f6"
11PREFIX="$HOME/$CACHE_BASENAME"13PREFIX="$HOME/$CACHE_BASENAME"
1214
13cd $HOME15cd $HOME
...@@ -30,38 +32,46 @@ export TERM=dumb...@@ -30,38 +32,46 @@ export TERM=dumb
30mkdir build32mkdir build
31cd build33cd build
32cmake .. \34cmake .. \
33 -DCMAKE_BUILD_TYPE=Release \35 -DCMAKE_BUILD_TYPE=Release \
34 -DCMAKE_PREFIX_PATH=$PREFIX \36 -DCMAKE_PREFIX_PATH=$PREFIX \
35 "-DCMAKE_INSTALL_PREFIX=$(pwd)/release" \37 -DZIG_TARGET_TRIPLE="$TARGET" \
36 -DZIG_STATIC=ON \38 -DZIG_TARGET_MCPU="$MCPU" \
37 -DZIG_TARGET_TRIPLE=x86_64-freebsd-gnu \39 -DZIG_STATIC=ON \
38 -GNinja40 -GNinja
39samu install41samu install
4042
41# Here we rebuild zig but this time using the Zig binary we just now produced to43# TODO: eliminate this workaround. Without this, zig does not end up passing
42# build zig1.o rather than relying on the one built with stage0. This makes it44# -isystem /usr/include when building libc++, resulting in #include <sys/endian.h>
43# a stage3 build rather than a stage2 build.45# "file not found" errors.
44cmake .. -DZIG_EXECUTABLE="$PREFIX/bin/zig"46stage2/bin/zig libc >libc.txt
45samu install
4647
47# Here we skip some tests to save time.48ZIG_LIBC=libc.txt stage2/bin/zig build \
48release/bin/zig build test docs \49 --prefix stage3-release \
49 --search-prefix "$PREFIX" \50 --search-prefix "$PREFIX" \
50 -Dstatic-llvm \51 -Dstatic-llvm \
52 -Drelease \
53 -Dstrip \
54 -Dtarget="$TARGET" \
55 -Denable-stage1
56
57# Here we skip some tests to save time.
58stage3-release/bin/zig build test docs \
59 -Dstatic-llvm \
60 --search-prefix "$PREFIX" \
51 -Dskip-stage1 \61 -Dskip-stage1 \
52 -Dskip-non-native62 -Dskip-non-native
5363
54if [ -f ~/.s3cfg ]; then64if [ -f ~/.s3cfg ]; then
55 mv ../LICENSE release/65 mv ../LICENSE stage3-release/
56 mv ../zig-cache/langref.html release/66 mv ../zig-cache/langref.html stage3-release/
57 mv release/bin/zig release/67 mv stage3-release/bin/zig stage3-release/
58 rmdir release/bin68 rmdir stage3-release/bin
5969
60 GITBRANCH=$(basename $GITHUB_REF)70 GITBRANCH=$(basename $GITHUB_REF)
61 VERSION=$(release/zig version)71 VERSION=$(stage3-release/zig version)
62 DIRNAME="zig-freebsd-x86_64-$VERSION"72 DIRNAME="zig-freebsd-x86_64-$VERSION"
63 TARBALL="$DIRNAME.tar.xz"73 TARBALL="$DIRNAME.tar.xz"
64 mv release "$DIRNAME"74 mv stage3-release "$DIRNAME"
65 tar cfJ "$TARBALL" "$DIRNAME"75 tar cfJ "$TARBALL" "$DIRNAME"
6676
67 s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/77 s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/