The main reason to update the CI tarballs is
f79824f946 which fixes an issue that
caused the CI to fail on all targets.
93 lines
2.7 KiB
Bash
Executable File
93 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -x
|
|
set -e
|
|
|
|
brew update && brew install ncurses s3cmd
|
|
|
|
ZIGDIR="$(pwd)"
|
|
ARCH="x86_64"
|
|
TARGET="$ARCH-macos-none"
|
|
MCPU="baseline"
|
|
CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.61+9be8396b7"
|
|
PREFIX="$HOME/$CACHE_BASENAME"
|
|
JOBS="-j2"
|
|
|
|
rm -rf $PREFIX
|
|
cd $HOME
|
|
|
|
wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
|
|
tar xf "$CACHE_BASENAME.tar.xz"
|
|
|
|
ZIG="$PREFIX/bin/zig"
|
|
export CC="$ZIG cc -target $TARGET -mcpu=$MCPU"
|
|
export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
|
|
|
|
cd $ZIGDIR
|
|
|
|
# Make the `zig version` number consistent.
|
|
# This will affect the cmake command below.
|
|
git config core.abbrev 9
|
|
git fetch --unshallow || true
|
|
git fetch --tags
|
|
|
|
mkdir build
|
|
cd build
|
|
cmake .. \
|
|
-DCMAKE_INSTALL_PREFIX="stage3-release" \
|
|
-DCMAKE_PREFIX_PATH="$PREFIX" \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DZIG_TARGET_TRIPLE="$TARGET" \
|
|
-DZIG_TARGET_MCPU="$MCPU" \
|
|
-DZIG_STATIC=ON
|
|
|
|
# Now cmake will use zig as the C/C++ compiler. We reset the environment variables
|
|
# so that installation and testing do not get affected by them.
|
|
unset CC
|
|
unset CXX
|
|
|
|
make $JOBS install
|
|
|
|
stage3-release/bin/zig build test docs \
|
|
--zig-lib-dir "$(pwd)/../lib" \
|
|
-Denable-macos-sdk \
|
|
-Dstatic-llvm \
|
|
-Dskip-non-native \
|
|
--search-prefix "$PREFIX"
|
|
|
|
if [ "${BUILD_REASON}" != "PullRequest" ]; then
|
|
mv ../LICENSE stage3-release/
|
|
mv ../zig-cache/langref.html stage3-release/
|
|
mv stage3-release/bin/zig stage3-release/
|
|
rmdir stage3-release/bin
|
|
|
|
VERSION=$(stage3-release/zig version)
|
|
DIRNAME="zig-macos-$ARCH-$VERSION"
|
|
TARBALL="$DIRNAME.tar.xz"
|
|
mv stage3-release "$DIRNAME"
|
|
tar cfJ "$TARBALL" "$DIRNAME"
|
|
|
|
mv "$DOWNLOADSECUREFILE_SECUREFILEPATH" "$HOME/.s3cfg"
|
|
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
|
|
|
|
SHASUM=$(shasum -a 256 $TARBALL | cut '-d ' -f1)
|
|
BYTESIZE=$(wc -c < $TARBALL)
|
|
|
|
JSONFILE="macos-$GITBRANCH.json"
|
|
touch $JSONFILE
|
|
echo "{\"tarball\": \"$TARBALL\"," >>$JSONFILE
|
|
echo "\"shasum\": \"$SHASUM\"," >>$JSONFILE
|
|
echo "\"size\": \"$BYTESIZE\"}" >>$JSONFILE
|
|
|
|
s3cmd put -P --add-header="Cache-Control: max-age=0, must-revalidate" "$JSONFILE" "s3://ziglang.org/builds/$JSONFILE"
|
|
s3cmd put -P "$JSONFILE" "s3://ziglang.org/builds/$ARCH-macos-$VERSION.json"
|
|
|
|
# `set -x` causes these variables to be mangled.
|
|
# See https://developercommunity.visualstudio.com/content/problem/375679/pipeline-variable-incorrectly-inserts-single-quote.html
|
|
set +x
|
|
echo "##vso[task.setvariable variable=tarball;isOutput=true]$TARBALL"
|
|
echo "##vso[task.setvariable variable=shasum;isOutput=true]$SHASUM"
|
|
echo "##vso[task.setvariable variable=bytesize;isOutput=true]$BYTESIZE"
|
|
echo "##vso[task.setvariable variable=version;isOutput=true]$VERSION"
|
|
fi
|