authorgravatar for git@l4.pmLuna <git@l4.pm> 2021-06-11 02:43:58-03:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-07-11 22:09:12-07:00
logc28b227d0b70a6bb37bf9b3e5bc40040ff495be1
tree1e2867c33faea8f3f998db104a76d2e251923c8f
parent8de5e8bcd1528d4cd0a468fedb8cd735f83069b6

ci: add scripts for netbsd


3 files changed, 107 insertions(+), 0 deletions(-)

.builds/netbsd.yml created+8
......@@ -0,0 +1,8 @@
1image: netbsd/latest
2secrets:
3 - 51bfddf5-86a6-4e01-8576-358c72a4a0a4
4 - 5cfede76-914e-4071-893e-e5e2e6ae3cea
5sources:
6 - https://github.com/ziglang/zig
7tasks:
8 - build: cd zig && ./ci/srht/netbsd_script
ci/srht/netbsd_script created+92
......@@ -0,0 +1,92 @@
1#!/bin/sh
2
3set -x
4set -e
5
6sudo pkgin -y update
7sudo pkgin -y upgrade
8sudo pkgin -y install cmake samurai curl jq py27-s3cmd wget clang
9
10ZIGDIR="$(pwd)"
11CACHE_BASENAME="zig+llvm+lld+clang-x86_64-netbsd-gnu-0.8.0"
12PREFIX="$HOME/$CACHE_BASENAME"
13
14cd $HOME
15wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
16tar xf "$CACHE_BASENAME.tar.xz"
17
18cd $ZIGDIR
19
20# Make the `zig version` number consistent.
21# This will affect the cmake command below.
22git config core.abbrev 9
23git fetch --unshallow || true
24git fetch --tags
25
26# SourceHut reports that it is a terminal that supports escape codes, but it
27# is a filthy liar. Here we tell Zig to not try to send any terminal escape
28# codes to show progress.
29export TERM=dumb
30
31mkdir build
32cd build
33export CC="$PREFIX/bin/zigcc"
34export CXX="$PREFIX/bin/zigcxx"
35echo "#!/bin/sh
36env CC=\"clang\" $PREFIX/bin/zig cc \"\$@\"" > $CC
37echo "#!/bin/sh
38env CC=\"clang\" $PREFIX/bin/zig c++ \"\$@\"" > $CXX
39chmod +x $CC
40chmod +x $CXX
41
42cmake .. \
43 -DCMAKE_BUILD_TYPE=Release \
44 -DCMAKE_PREFIX_PATH=$PREFIX \
45 "-DCMAKE_INSTALL_PREFIX=$(pwd)/release" \
46 -DZIG_STATIC=ON \
47 -DZIG_TARGET_TRIPLE=x86_64-netbsd-none \
48 -GNinja
49samu install
50
51unset CC
52unset CXX
53
54# Here we skip some tests to save time.
55release/bin/zig build test -Dskip-compile-errors -Dskip-non-native
56
57if [ -f ~/.s3cfg ]; then
58 mv ../LICENSE release/
59 mv ../zig-cache/langref.html release/
60 mv release/bin/zig release/
61 rmdir release/bin
62
63 GITBRANCH=$(basename $GITHUB_REF)
64 VERSION=$(release/zig version)
65 DIRNAME="zig-netbsd-x86_64-$VERSION"
66 TARBALL="$DIRNAME.tar.xz"
67 mv release "$DIRNAME"
68 tar cfJ "$TARBALL" "$DIRNAME"
69
70 s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
71
72 SHASUM=$(shasum -a 256 $TARBALL | cut '-d ' -f1)
73 BYTESIZE=$(wc -c < $TARBALL)
74
75 JSONFILE="netbsd-$GITBRANCH.json"
76 touch $JSONFILE
77 echo "{\"tarball\": \"$TARBALL\"," >>$JSONFILE
78 echo "\"shasum\": \"$SHASUM\"," >>$JSONFILE
79 echo "\"size\": \"$BYTESIZE\"}" >>$JSONFILE
80
81 s3cmd put -P --add-header="Cache-Control: max-age=0, must-revalidate" "$JSONFILE" "s3://ziglang.org/builds/$JSONFILE"
82 s3cmd put -P "$JSONFILE" "s3://ziglang.org/builds/x86_64-netbsd-$VERSION.json"
83
84 if [ "$GITBRANCH" = "master" ]; then
85 # avoid leaking oauth token
86 set +x
87
88 OAUTH_TOKEN="$(cat ~/.oauth_token)"
89 cd "$ZIGDIR"
90 ./ci/srht/on_master_success "$VERSION" "$OAUTH_TOKEN"
91 fi
92fi
ci/srht/update_download_page+7
......@@ -15,6 +15,7 @@ X86_64_WINDOWS_JSON_URL="https://ziglang.org/builds/x86_64-windows-$VERSION.json
1515AARCH64_MACOS_JSON_URL="https://ziglang.org/builds/aarch64-macos-$VERSION.json"
1616X86_64_MACOS_JSON_URL="https://ziglang.org/builds/x86_64-macos-$VERSION.json"
1717X86_64_FREEBSD_JSON_URL="https://ziglang.org/builds/x86_64-freebsd-$VERSION.json"
18X86_64_NETBSD_JSON_URL="https://ziglang.org/builds/x86_64-netbsd-$VERSION.json"
1819
1920# If any of these fail, it's not really this job failing; rather we have detected
2021# that this job will be called again later when other jobs have completed.
......@@ -24,6 +25,7 @@ curl --fail -I "$X86_64_WINDOWS_JSON_URL" >/dev/null || exit 0
2425curl --fail -I "$AARCH64_MACOS_JSON_URL" >/dev/null || exit 0
2526curl --fail -I "$X86_64_MACOS_JSON_URL" >/dev/null || exit 0
2627curl --fail -I "$X86_64_FREEBSD_JSON_URL" >/dev/null || exit 0
28curl --fail -I "$X86_64_NETBSD_JSON_URL" >/dev/null || exit 0
2729
2830# Without --user, this gave me:
2931# ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied
......@@ -84,6 +86,11 @@ export X86_64_FREEBSD_TARBALL="$(echo "$X86_64_FREEBSD_JSON" | jq .tarball -r)"
8486export X86_64_FREEBSD_BYTESIZE="$(echo "$X86_64_FREEBSD_JSON" | jq .size -r)"
8587export X86_64_FREEBSD_SHASUM="$(echo "$X86_64_FREEBSD_JSON" | jq .shasum -r)"
8688
89X86_64_NETBSD_JSON=$(curl --fail "$X86_64_NETBSD_JSON_URL" || exit 1)
90export X86_64_NETBSD_TARBALL="$(echo "$X86_64_NETBSD_JSON" | jq .tarball -r)"
91export X86_64_NETBSD_BYTESIZE="$(echo "$X86_64_NETBSD_JSON" | jq .size -r)"
92export X86_64_NETBSD_SHASUM="$(echo "$X86_64_NETBSD_JSON" | jq .shasum -r)"
93
8794export MASTER_DATE="$(date +%Y-%m-%d)"
8895export MASTER_VERSION="$VERSION"
8996