| ... | ... | @@ -0,0 +1,92 @@ |
| 1 | #!/bin/sh |
| 2 | |
| 3 | set -x |
| 4 | set -e |
| 5 | |
| 6 | sudo pkgin -y update |
| 7 | sudo pkgin -y upgrade |
| 8 | sudo pkgin -y install cmake samurai curl jq py27-s3cmd wget clang |
| 9 | |
| 10 | ZIGDIR="$(pwd)" |
| 11 | CACHE_BASENAME="zig+llvm+lld+clang-x86_64-netbsd-gnu-0.8.0" |
| 12 | PREFIX="$HOME/$CACHE_BASENAME" |
| 13 | |
| 14 | cd $HOME |
| 15 | wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz" |
| 16 | tar xf "$CACHE_BASENAME.tar.xz" |
| 17 | |
| 18 | cd $ZIGDIR |
| 19 | |
| 20 | # Make the `zig version` number consistent. |
| 21 | # This will affect the cmake command below. |
| 22 | git config core.abbrev 9 |
| 23 | git fetch --unshallow || true |
| 24 | git 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. |
| 29 | export TERM=dumb |
| 30 | |
| 31 | mkdir build |
| 32 | cd build |
| 33 | export CC="$PREFIX/bin/zigcc" |
| 34 | export CXX="$PREFIX/bin/zigcxx" |
| 35 | echo "#!/bin/sh |
| 36 | env CC=\"clang\" $PREFIX/bin/zig cc \"\$@\"" > $CC |
| 37 | echo "#!/bin/sh |
| 38 | env CC=\"clang\" $PREFIX/bin/zig c++ \"\$@\"" > $CXX |
| 39 | chmod +x $CC |
| 40 | chmod +x $CXX |
| 41 | |
| 42 | cmake .. \ |
| 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 |
| 49 | samu install |
| 50 | |
| 51 | unset CC |
| 52 | unset CXX |
| 53 | |
| 54 | # Here we skip some tests to save time. |
| 55 | release/bin/zig build test -Dskip-compile-errors -Dskip-non-native |
| 56 | |
| 57 | if [ -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 |
| 92 | fi |