Merge branch 'ci-secure'

This commit is contained in:
Andrew Kelley 2022-11-22 14:14:28 -07:00
parent 090eb347a4
commit 6b1f99dd33
7 changed files with 255 additions and 234 deletions

View File

@ -1,55 +1,37 @@
name: push_ci name: ci
run-name: Push CI on: [push, pull_request]
on:
push:
branches:
- master
jobs: jobs:
aarch64-linux:
runs-on: [self-hosted, Linux, aarch64]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and Test
run: sh ./ci/linux/build-aarch64.sh
x86_64-linux-debug: x86_64-linux-debug:
runs-on: ubuntu-latest outputs:
version: ${{ steps.version.outputs.version }}
runs-on: [self-hosted, Linux, x86_64]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Build and Test - name: Build and Test
run: sh ./ci/linux/build-x86_64-debug.sh run: sh ./ci/linux/build-x86_64-debug.sh
# The following step is required by the build-tarballs job.
# If this job is being deleted / commented out, make sure
# to have another job provide this information.
- name: Get Version
id: version
run: echo "version=$(stage3/bin/zig version)" >> $GITHUB_OUTPUT
x86_64-linux-release: x86_64-linux-release:
runs-on: ubuntu-latest runs-on: [self-hosted, Linux, x86_64]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Build and Test - name: Build and Test
run: sh ./ci/linux/build-x86_64-release.sh run: sh ./ci/linux/build-x86_64-release.sh
x86_64-macos: x86_64-macos:
strategy: runs-on: "macos-11"
matrix:
version: ["11", "12"]
runs-on: "macos-${{ matrix.version }}"
env: env:
ARCH: "x86_64" ARCH: "x86_64"
MACOS_VERSION: ${{ matrix.version }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Build and Test
- name: Run Build Script
run: ./ci/macos/build-x86_64.sh run: ./ci/macos/build-x86_64.sh
aarch64-macos:
runs-on: [self-hosted, macOS, aarch64]
env:
ARCH: "aarch64"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run Build Script
run: ./ci/macos/build-aarch64.sh
x86_64-windows: x86_64-windows:
runs-on: windows-latest runs-on: windows-latest
env: env:
@ -57,14 +39,21 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Build and Test
- name: Run Build Script
run: ./ci/windows/build.ps1 run: ./ci/windows/build.ps1
build-tarballs: aarch64-linux:
needs: [aarch64-linux, x86_64-macos, aarch64-macos, x86_64-windows, x86_64-linux-debug, x86_64-linux-release]
runs-on: [self-hosted, Linux, aarch64] runs-on: [self-hosted, Linux, aarch64]
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Build Tarballs - name: Build and Test
run: sh ./ci/linux/build-tarballs.sh run: sh ./ci/linux/build-aarch64.sh
aarch64-macos:
runs-on: [self-hosted, macOS, aarch64]
env:
ARCH: "aarch64"
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and Test
run: ./ci/macos/build-aarch64.sh

View File

@ -12,7 +12,7 @@ CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.256+271cc52a1"
PREFIX="$HOME/deps/$CACHE_BASENAME" PREFIX="$HOME/deps/$CACHE_BASENAME"
ZIG="$PREFIX/bin/zig" ZIG="$PREFIX/bin/zig"
export PATH="$HOME/deps/wasmtime-v2.0.2-aarch64-linux:$PATH" export PATH="$HOME/deps/wasmtime-v2.0.2-$ARCH-linux:$PATH"
# Make the `zig version` number consistent. # Make the `zig version` number consistent.
# This will affect the cmake command below. # This will affect the cmake command below.
@ -42,6 +42,14 @@ unset CXX
ninja install ninja install
echo "Looking for non-conforming code formatting..."
stage3-release/bin/zig fmt --check .. \
--exclude ../test/cases/ \
--exclude ../build-release
# simultaneously test building self-hosted without LLVM and with 32-bit arm
stage3-release/bin/zig build -Dtarget=arm-linux-musleabihf
# TODO: add -fqemu back to this line # TODO: add -fqemu back to this line
stage3-release/bin/zig build test docs \ stage3-release/bin/zig build test docs \
@ -51,15 +59,12 @@ stage3-release/bin/zig build test docs \
--search-prefix "$PREFIX" \ --search-prefix "$PREFIX" \
--zig-lib-dir "$(pwd)/../lib" --zig-lib-dir "$(pwd)/../lib"
# Look for HTML errors.
tidy --drop-empty-elements no -qe zig-cache/langref.html
# Produce the experimental std lib documentation. # Produce the experimental std lib documentation.
mkdir -p "stage3-release/doc/std" mkdir -p "stage3-release/doc/std"
stage3-release/bin/zig test ../lib/std/std.zig \ stage3-release/bin/zig test ../lib/std/std.zig \
-femit-docs=stage3-release/doc/std \ -femit-docs=stage3-release/doc/std \
-fno-emit-bin \ -fno-emit-bin \
--zig-lib-dir "$(pwd)/../lib" --zig-lib-dir "$(pwd)/../lib"
# cp ../LICENSE $RELEASE_STAGING/
# cp ../zig-cache/langref.html $RELEASE_STAGING/doc/
# # Look for HTML errors.
# tidy --drop-empty-elements no -qe $RELEASE_STAGING/doc/langref.html

View File

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# Requires cmake ninja-build apt-get install ninja-build
set -x set -x
set -e set -e
@ -13,9 +13,13 @@ ARCH="$(uname -m)"
TARGET="$ARCH-linux-musl" TARGET="$ARCH-linux-musl"
MCPU="baseline" MCPU="baseline"
CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.256+271cc52a1" CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.256+271cc52a1"
PREFIX="$HOME/deps/$CACHE_BASENAME" PREFIX="$WORKDIR/deps/$CACHE_BASENAME"
ZIG="$PREFIX/bin/zig" ZIG="$PREFIX/bin/zig"
OLD_ZIG_VERSION="0.11.0-dev.256+271cc52a1"
wget "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
tar xf "$CACHE_BASENAME.tar.xz"
# Make the `zig version` number consistent. # Make the `zig version` number consistent.
# This will affect the cmake command below. # This will affect the cmake command below.
cd "$ZIGDIR" cd "$ZIGDIR"
@ -26,7 +30,6 @@ git fetch --tags
export CC="$ZIG cc -target $TARGET -mcpu=$MCPU" export CC="$ZIG cc -target $TARGET -mcpu=$MCPU"
export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU" export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
rm -rf "$REL_SRC_BUILD"
mkdir "$REL_SRC_BUILD" mkdir "$REL_SRC_BUILD"
cd "$REL_SRC_BUILD" cd "$REL_SRC_BUILD"
cmake .. \ cmake .. \
@ -46,30 +49,30 @@ unset CXX
ninja install ninja install
ZIG_VERSION="$(stage3-release/bin/zig version)" ZIG_VERSION="$(stage3-release/bin/zig version)"
git clone https://github.com/ziglang/zig-bootstrap
BOOTSTRAP_SRC="$WORKDIR/zig-bootstrap" BOOTSTRAP_SRC="$WORKDIR/zig-bootstrap"
TARBALLS_DIR="$WORKDIR/tarballs" TARBALLS_DIR="$WORKDIR/tarballs"
cd "$BOOTSTRAP_SRC" cd "$BOOTSTRAP_SRC"
git pull
rm -rf zig rm -rf zig
cp -r "$ZIGDIR" ./ cp -r "$ZIGDIR" ./
sed -i "/^ZIG_VERSION=\".*\"\$/c\\ZIG_VERSION=\"$ZIG_VERSION\"" build sed -i "/^ZIG_VERSION=\".*\"\$/c\\ZIG_VERSION=\"$ZIG_VERSION\"" build
# Unfortunately Debian's cmake (3.14.4) is too old for zig-bootstrap. # NOTE: Debian's cmake (3.14.4) is too old for zig-bootstrap.
PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-linux-musl baseline CMAKE_GENERATOR=Ninja ./build x86_64-linux-musl baseline
PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-linux-musl baseline CMAKE_GENERATOR=Ninja ./build x86_64-macos-none baseline
#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86-linux-musl baseline CMAKE_GENERATOR=Ninja ./build x86_64-windows-gnu baseline
#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build riscv64-linux-musl baseline CMAKE_GENERATOR=Ninja ./build aarch64-linux-musl baseline
#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build arm-linux-musleabihf generic+v7a CMAKE_GENERATOR=Ninja ./build aarch64-macos-none apple_a14
PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-macos-none baseline # CMAKE_GENERATOR=Ninja ./build aarch64-windows-gnu baseline
PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-macos-none apple_a14 # CMAKE_GENERATOR=Ninja ./build x86-linux-musl baseline
PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-windows-gnu baseline # CMAKE_GENERATOR=Ninja ./build x86-windows-gnu baseline
#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86-windows-gnu baseline # CMAKE_GENERATOR=Ninja ./build arm-linux-musleabihf generic+v7a
#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-windows-gnu baseline # CMAKE_GENERATOR=Ninja ./build riscv64-linux-musl baseline
ZIG="$BOOTSTRAP_SRC/out/host/bin/zig" ZIG="$BOOTSTRAP_SRC/out/host/bin/zig"
rm -rf "$TARBALLS_DIR"
mkdir "$TARBALLS_DIR" mkdir "$TARBALLS_DIR"
cd "$TARBALLS_DIR" cd "$TARBALLS_DIR"
@ -92,158 +95,159 @@ tar cfJ "zig-$ZIG_VERSION.tar.xz" "zig-$ZIG_VERSION"
cd "$BOOTSTRAP_SRC" cd "$BOOTSTRAP_SRC"
"$ZIG" build --build-file zig/build.zig docs "$ZIG" build --build-file zig/build.zig docs
LANGREF_HTML="$BOOTSTRAP_SRC/zig/zig-cache/langref.html" LANGREF_HTML="$BOOTSTRAP_SRC/zig/zig-cache/langref.html"
# Look for HTML errors. # Look for HTML errors.
tidy --drop-empty-elements no -qe "$LANGREF_HTML" tidy --drop-empty-elements no -qe "$LANGREF_HTML"
cd "$TARBALLS_DIR" cd "$TARBALLS_DIR"
cp -r $BOOTSTRAP_SRC/out/zig-aarch64-linux-musl-baseline zig-linux-aarch64-$ZIG_VERSION/
cp -r $BOOTSTRAP_SRC/out/zig-aarch64-macos-none-apple_a14 zig-macos-aarch64-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-aarch64-windows-gnu-baseline zig-windows-aarch64-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-arm-linux-musleabihf-generic+v7a zig-linux-armv7a-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-x86-linux-musl-baseline zig-linux-x86-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-x86-windows-gnu-baseline zig-windows-x86-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-riscv64-linux-musl-baseline zig-linux-riscv64-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-x86_64-freebsd-gnu-baseline zig-freebsd-x86_64-$ZIG_VERSION/
cp -r $BOOTSTRAP_SRC/out/zig-x86_64-linux-musl-baseline zig-linux-x86_64-$ZIG_VERSION/ cp -r $BOOTSTRAP_SRC/out/zig-x86_64-linux-musl-baseline zig-linux-x86_64-$ZIG_VERSION/
cp -r $BOOTSTRAP_SRC/out/zig-x86_64-macos-none-baseline zig-macos-x86_64-$ZIG_VERSION/ cp -r $BOOTSTRAP_SRC/out/zig-x86_64-macos-none-baseline zig-macos-x86_64-$ZIG_VERSION/
cp -r $BOOTSTRAP_SRC/out/zig-x86_64-windows-gnu-baseline zig-windows-x86_64-$ZIG_VERSION/ cp -r $BOOTSTRAP_SRC/out/zig-x86_64-windows-gnu-baseline zig-windows-x86_64-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-x86_64-freebsd-gnu-baseline zig-freebsd-x86_64-$ZIG_VERSION/
cp -r $BOOTSTRAP_SRC/out/zig-aarch64-linux-musl-baseline zig-linux-aarch64-$ZIG_VERSION/
cp -r $BOOTSTRAP_SRC/out/zig-aarch64-macos-none-apple_a14 zig-macos-aarch64-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-aarch64-windows-gnu-baseline zig-windows-aarch64-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-x86-linux-musl-baseline zig-linux-x86-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-x86-windows-gnu-baseline zig-windows-x86-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-arm-linux-musleabihf-generic+v7a zig-linux-armv7a-$ZIG_VERSION/
#cp -r $BOOTSTRAP_SRC/out/zig-riscv64-linux-musl-baseline zig-linux-riscv64-$ZIG_VERSION/
mv zig-linux-aarch64-$ZIG_VERSION/{bin/,}zig
#mv zig-linux-armv7a-$ZIG_VERSION/{bin/,}zig
#mv zig-linux-x86-$ZIG_VERSION/{bin/,}zig
#mv zig-linux-riscv64-$ZIG_VERSION/{bin/,}zig
mv zig-linux-x86_64-$ZIG_VERSION/{bin/,}zig mv zig-linux-x86_64-$ZIG_VERSION/{bin/,}zig
#mv zig-windows-x86-$ZIG_VERSION/{bin/,}zig.exe
mv zig-windows-x86_64-$ZIG_VERSION/{bin/,}zig.exe
#mv zig-windows-aarch64-$ZIG_VERSION/{bin/,}zig.exe
mv zig-macos-aarch64-$ZIG_VERSION/{bin/,}zig
mv zig-macos-x86_64-$ZIG_VERSION/{bin/,}zig mv zig-macos-x86_64-$ZIG_VERSION/{bin/,}zig
mv zig-windows-x86_64-$ZIG_VERSION/{bin/,}zig.exe
#mv zig-freebsd-x86_64-$ZIG_VERSION/{bin/,}zig #mv zig-freebsd-x86_64-$ZIG_VERSION/{bin/,}zig
mv zig-linux-aarch64-$ZIG_VERSION/{bin/,}zig
mv zig-macos-aarch64-$ZIG_VERSION/{bin/,}zig
#mv zig-windows-aarch64-$ZIG_VERSION/{bin/,}zig.exe
#mv zig-linux-x86-$ZIG_VERSION/{bin/,}zig
#mv zig-windows-x86-$ZIG_VERSION/{bin/,}zig.exe
#mv zig-linux-armv7a-$ZIG_VERSION/{bin/,}zig
#mv zig-linux-riscv64-$ZIG_VERSION/{bin/,}zig
mv zig-linux-aarch64-$ZIG_VERSION/{lib,lib2}
#mv zig-linux-armv7a-$ZIG_VERSION/{lib,lib2}
#mv zig-linux-x86-$ZIG_VERSION/{lib,lib2}
#mv zig-linux-riscv64-$ZIG_VERSION/{lib,lib2}
mv zig-linux-x86_64-$ZIG_VERSION/{lib,lib2} mv zig-linux-x86_64-$ZIG_VERSION/{lib,lib2}
#mv zig-windows-x86-$ZIG_VERSION/{lib,lib2}
mv zig-windows-x86_64-$ZIG_VERSION/{lib,lib2}
#mv zig-windows-aarch64-$ZIG_VERSION/{lib,lib2}
mv zig-macos-aarch64-$ZIG_VERSION/{lib,lib2}
mv zig-macos-x86_64-$ZIG_VERSION/{lib,lib2} mv zig-macos-x86_64-$ZIG_VERSION/{lib,lib2}
mv zig-windows-x86_64-$ZIG_VERSION/{lib,lib2}
#mv zig-freebsd-x86_64-$ZIG_VERSION/{lib,lib2} #mv zig-freebsd-x86_64-$ZIG_VERSION/{lib,lib2}
mv zig-linux-aarch64-$ZIG_VERSION/{lib,lib2}
mv zig-macos-aarch64-$ZIG_VERSION/{lib,lib2}
#mv zig-windows-aarch64-$ZIG_VERSION/{lib,lib2}
#mv zig-linux-x86-$ZIG_VERSION/{lib,lib2}
#mv zig-windows-x86-$ZIG_VERSION/{lib,lib2}
#mv zig-linux-armv7a-$ZIG_VERSION/{lib,lib2}
#mv zig-linux-riscv64-$ZIG_VERSION/{lib,lib2}
mv zig-linux-aarch64-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-linux-armv7a-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-linux-x86-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-linux-riscv64-$ZIG_VERSION/{lib2/zig,lib}
mv zig-linux-x86_64-$ZIG_VERSION/{lib2/zig,lib} mv zig-linux-x86_64-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-windows-x86-$ZIG_VERSION/{lib2/zig,lib}
mv zig-windows-x86_64-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-windows-aarch64-$ZIG_VERSION/{lib2/zig,lib}
mv zig-macos-aarch64-$ZIG_VERSION/{lib2/zig,lib}
mv zig-macos-x86_64-$ZIG_VERSION/{lib2/zig,lib} mv zig-macos-x86_64-$ZIG_VERSION/{lib2/zig,lib}
mv zig-windows-x86_64-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-freebsd-x86_64-$ZIG_VERSION/{lib2/zig,lib} #mv zig-freebsd-x86_64-$ZIG_VERSION/{lib2/zig,lib}
mv zig-linux-aarch64-$ZIG_VERSION/{lib2/zig,lib}
mv zig-macos-aarch64-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-windows-aarch64-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-linux-x86-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-windows-x86-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-linux-armv7a-$ZIG_VERSION/{lib2/zig,lib}
#mv zig-linux-riscv64-$ZIG_VERSION/{lib2/zig,lib}
rmdir zig-linux-aarch64-$ZIG_VERSION/{bin,lib2}
#rmdir zig-linux-armv7a-$ZIG_VERSION/{bin,lib2}
#rmdir zig-linux-x86-$ZIG_VERSION/{bin,lib2}
#rmdir zig-linux-riscv64-$ZIG_VERSION/{bin,lib2}
rmdir zig-linux-x86_64-$ZIG_VERSION/{bin,lib2} rmdir zig-linux-x86_64-$ZIG_VERSION/{bin,lib2}
#rmdir zig-windows-x86-$ZIG_VERSION/{bin,lib2}
rmdir zig-windows-x86_64-$ZIG_VERSION/{bin,lib2}
#rmdir zig-windows-aarch64-$ZIG_VERSION/{bin,lib2}
rmdir zig-macos-aarch64-$ZIG_VERSION/{bin,lib2}
rmdir zig-macos-x86_64-$ZIG_VERSION/{bin,lib2} rmdir zig-macos-x86_64-$ZIG_VERSION/{bin,lib2}
rmdir zig-windows-x86_64-$ZIG_VERSION/{bin,lib2}
#rmdir zig-freebsd-x86_64-$ZIG_VERSION/{bin,lib2} #rmdir zig-freebsd-x86_64-$ZIG_VERSION/{bin,lib2}
rmdir zig-linux-aarch64-$ZIG_VERSION/{bin,lib2}
rmdir zig-macos-aarch64-$ZIG_VERSION/{bin,lib2}
#rmdir zig-windows-aarch64-$ZIG_VERSION/{bin,lib2}
#rmdir zig-linux-x86-$ZIG_VERSION/{bin,lib2}
#rmdir zig-windows-x86-$ZIG_VERSION/{bin,lib2}
#rmdir zig-linux-armv7a-$ZIG_VERSION/{bin,lib2}
#rmdir zig-linux-riscv64-$ZIG_VERSION/{bin,lib2}
cp $REL_SRC_BUILD/../LICENSE zig-linux-aarch64-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-linux-armv7a-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-linux-x86-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-linux-riscv64-$ZIG_VERSION/
cp $REL_SRC_BUILD/../LICENSE zig-linux-x86_64-$ZIG_VERSION/ cp $REL_SRC_BUILD/../LICENSE zig-linux-x86_64-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-windows-x86-$ZIG_VERSION/
cp $REL_SRC_BUILD/../LICENSE zig-windows-x86_64-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-windows-aarch64-$ZIG_VERSION/
cp $REL_SRC_BUILD/../LICENSE zig-macos-aarch64-$ZIG_VERSION/
cp $REL_SRC_BUILD/../LICENSE zig-macos-x86_64-$ZIG_VERSION/ cp $REL_SRC_BUILD/../LICENSE zig-macos-x86_64-$ZIG_VERSION/
cp $REL_SRC_BUILD/../LICENSE zig-windows-x86_64-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-freebsd-x86_64-$ZIG_VERSION/ #cp $REL_SRC_BUILD/../LICENSE zig-freebsd-x86_64-$ZIG_VERSION/
cp $REL_SRC_BUILD/../LICENSE zig-linux-aarch64-$ZIG_VERSION/
cp $REL_SRC_BUILD/../LICENSE zig-macos-aarch64-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-windows-aarch64-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-linux-x86-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-windows-x86-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-linux-armv7a-$ZIG_VERSION/
#cp $REL_SRC_BUILD/../LICENSE zig-linux-riscv64-$ZIG_VERSION/
mkdir zig-linux-aarch64-$ZIG_VERSION/doc/
#mkdir zig-linux-armv7a-$ZIG_VERSION/doc/
#mkdir zig-linux-x86-$ZIG_VERSION/doc/
#mkdir zig-linux-riscv64-$ZIG_VERSION/doc/
mkdir zig-linux-x86_64-$ZIG_VERSION/doc/ mkdir zig-linux-x86_64-$ZIG_VERSION/doc/
#mkdir zig-windows-x86-$ZIG_VERSION/doc/
mkdir zig-windows-x86_64-$ZIG_VERSION/doc/
#mkdir zig-windows-aarch64-$ZIG_VERSION/doc/
mkdir zig-macos-aarch64-$ZIG_VERSION/doc/
mkdir zig-macos-x86_64-$ZIG_VERSION/doc/ mkdir zig-macos-x86_64-$ZIG_VERSION/doc/
mkdir zig-windows-x86_64-$ZIG_VERSION/doc/
#mkdir zig-freebsd-x86_64-$ZIG_VERSION/doc/ #mkdir zig-freebsd-x86_64-$ZIG_VERSION/doc/
mkdir zig-linux-aarch64-$ZIG_VERSION/doc/
mkdir zig-macos-aarch64-$ZIG_VERSION/doc/
#mkdir zig-windows-aarch64-$ZIG_VERSION/doc/
#mkdir zig-linux-x86-$ZIG_VERSION/doc/
#mkdir zig-windows-x86-$ZIG_VERSION/doc/
#mkdir zig-linux-armv7a-$ZIG_VERSION/doc/
#mkdir zig-linux-riscv64-$ZIG_VERSION/doc/
cd $REL_SRC_BUILD cd $REL_SRC_BUILD
stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-aarch64 -target aarch64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-armv7a -target arm-linux-musl -mcpu=generic+v7a -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86 -target x86-linux-musl -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-riscv64 -target riscv64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86_64 -target x86_64-linux-musl -fno-emit-bin --zig-lib-dir ../lib stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86_64 -target x86_64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86 -target x86-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86_64 -target x86_64-windows-gnu -fno-emit-bin --zig-lib-dir ../lib stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86_64 -target x86_64-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-aarch64 -target aarch64-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-x86_64 -target x86_64-macos -fno-emit-bin --zig-lib-dir ../lib stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-x86_64 -target x86_64-macos -fno-emit-bin --zig-lib-dir ../lib
stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-aarch64 -target aarch64-macos -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-freebsd-x86_64 -target x86_64-freebsd -fno-emit-bin --zig-lib-dir ../lib #stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-freebsd-x86_64 -target x86_64-freebsd -fno-emit-bin --zig-lib-dir ../lib
stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-aarch64 -target aarch64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-aarch64 -target aarch64-macos -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-aarch64 -target aarch64-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86 -target x86-linux-musl -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86 -target x86-windows-gnu -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-armv7a -target arm-linux-musl -mcpu=generic+v7a -fno-emit-bin --zig-lib-dir ../lib
#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-riscv64 -target riscv64-linux-musl -fno-emit-bin --zig-lib-dir ../lib
cd "$TARBALLS_DIR" cd "$TARBALLS_DIR"
cp -r $REL_SRC_BUILD/doc-linux-aarch64 zig-linux-aarch64-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-linux-armv7a zig-linux-armv7a-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-linux-x86 zig-linux-x86-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-linux-riscv64 zig-linux-riscv64-$ZIG_VERSION/doc/std
cp -r $REL_SRC_BUILD/doc-linux-x86_64 zig-linux-x86_64-$ZIG_VERSION/doc/std cp -r $REL_SRC_BUILD/doc-linux-x86_64 zig-linux-x86_64-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-windows-x86 zig-windows-x86-$ZIG_VERSION/doc/std
cp -r $REL_SRC_BUILD/doc-windows-x86_64 zig-windows-x86_64-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-windows-aarch64 zig-windows-aarch64-$ZIG_VERSION/doc/std
cp -r $REL_SRC_BUILD/doc-macos-aarch64 zig-macos-aarch64-$ZIG_VERSION/doc/std
cp -r $REL_SRC_BUILD/doc-macos-x86_64 zig-macos-x86_64-$ZIG_VERSION/doc/std cp -r $REL_SRC_BUILD/doc-macos-x86_64 zig-macos-x86_64-$ZIG_VERSION/doc/std
cp -r $REL_SRC_BUILD/doc-windows-x86_64 zig-windows-x86_64-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-freebsd-x86_64 zig-freebsd-x86_64-$ZIG_VERSION/doc/std #cp -r $REL_SRC_BUILD/doc-freebsd-x86_64 zig-freebsd-x86_64-$ZIG_VERSION/doc/std
cp -r $REL_SRC_BUILD/doc-linux-aarch64 zig-linux-aarch64-$ZIG_VERSION/doc/std
cp -r $REL_SRC_BUILD/doc-macos-aarch64 zig-macos-aarch64-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-windows-aarch64 zig-windows-aarch64-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-linux-x86 zig-linux-x86-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-windows-x86 zig-windows-x86-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-linux-armv7a zig-linux-armv7a-$ZIG_VERSION/doc/std
#cp -r $REL_SRC_BUILD/doc-linux-riscv64 zig-linux-riscv64-$ZIG_VERSION/doc/std
cp $LANGREF_HTML zig-linux-aarch64-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-linux-armv7a-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-linux-x86-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-linux-riscv64-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-linux-x86_64-$ZIG_VERSION/doc/ cp $LANGREF_HTML zig-linux-x86_64-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-windows-x86-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-windows-x86_64-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-windows-aarch64-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-macos-aarch64-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-macos-x86_64-$ZIG_VERSION/doc/ cp $LANGREF_HTML zig-macos-x86_64-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-windows-x86_64-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-freebsd-x86_64-$ZIG_VERSION/doc/ #cp $LANGREF_HTML zig-freebsd-x86_64-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-linux-aarch64-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-macos-aarch64-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-windows-aarch64-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-linux-x86-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-windows-x86-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-linux-armv7a-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-linux-riscv64-$ZIG_VERSION/doc/
tar cJf zig-linux-aarch64-$ZIG_VERSION.tar.xz zig-linux-aarch64-$ZIG_VERSION/
#tar cJf zig-linux-armv7a-$ZIG_VERSION.tar.xz zig-linux-armv7a-$ZIG_VERSION/
#tar cJf zig-linux-x86-$ZIG_VERSION.tar.xz zig-linux-x86-$ZIG_VERSION/
#tar cJf zig-linux-riscv64-$ZIG_VERSION.tar.xz zig-linux-riscv64-$ZIG_VERSION/
tar cJf zig-linux-x86_64-$ZIG_VERSION.tar.xz zig-linux-x86_64-$ZIG_VERSION/ tar cJf zig-linux-x86_64-$ZIG_VERSION.tar.xz zig-linux-x86_64-$ZIG_VERSION/
#7z a zig-windows-x86-$ZIG_VERSION.zip zig-windows-x86-$ZIG_VERSION/
7z a zig-windows-x86_64-$ZIG_VERSION.zip zig-windows-x86_64-$ZIG_VERSION/
#7z a zig-windows-aarch64-$ZIG_VERSION.zip zig-windows-aarch64-$ZIG_VERSION/
tar cJf zig-macos-aarch64-$ZIG_VERSION.tar.xz zig-macos-aarch64-$ZIG_VERSION/
tar cJf zig-macos-x86_64-$ZIG_VERSION.tar.xz zig-macos-x86_64-$ZIG_VERSION/ tar cJf zig-macos-x86_64-$ZIG_VERSION.tar.xz zig-macos-x86_64-$ZIG_VERSION/
7z a zig-windows-x86_64-$ZIG_VERSION.zip zig-windows-x86_64-$ZIG_VERSION/
#tar cJf zig-freebsd-x86_64-$ZIG_VERSION.tar.xz zig-freebsd-x86_64-$ZIG_VERSION/ #tar cJf zig-freebsd-x86_64-$ZIG_VERSION.tar.xz zig-freebsd-x86_64-$ZIG_VERSION/
tar cJf zig-linux-aarch64-$ZIG_VERSION.tar.xz zig-linux-aarch64-$ZIG_VERSION/
tar cJf zig-macos-aarch64-$ZIG_VERSION.tar.xz zig-macos-aarch64-$ZIG_VERSION/
#7z a zig-windows-aarch64-$ZIG_VERSION.zip zig-windows-aarch64-$ZIG_VERSION/
#tar cJf zig-linux-x86-$ZIG_VERSION.tar.xz zig-linux-x86-$ZIG_VERSION/
#7z a zig-windows-x86-$ZIG_VERSION.zip zig-windows-x86-$ZIG_VERSION/
#tar cJf zig-linux-armv7a-$ZIG_VERSION.tar.xz zig-linux-armv7a-$ZIG_VERSION/
#tar cJf zig-linux-riscv64-$ZIG_VERSION.tar.xz zig-linux-riscv64-$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/ s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-bootstrap-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/ #s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-bootstrap-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-aarch64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-armv7a-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-x86-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-riscv64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/ s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-windows-x86-$ZIG_VERSION.zip s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-windows-x86_64-$ZIG_VERSION.zip s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-windows-aarch64-$ZIG_VERSION.zip s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-macos-aarch64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-macos-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/ s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-macos-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-freebsd-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/ #s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-freebsd-x86_64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-windows-x86_64-$ZIG_VERSION.zip s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-aarch64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-macos-aarch64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-windows-aarch64-$ZIG_VERSION.zip s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-x86-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-windows-x86-$ZIG_VERSION.zip s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-armv7a-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
#s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" zig-linux-riscv64-$ZIG_VERSION.tar.xz s3://ziglang.org/builds/$ZIG_VERSION/
export SRC_TARBALL="zig-$ZIG_VERSION.tar.xz" export SRC_TARBALL="zig-$ZIG_VERSION.tar.xz"
export SRC_SHASUM=$(sha256sum "zig-$ZIG_VERSION.tar.xz" | cut '-d ' -f1) export SRC_SHASUM=$(sha256sum "zig-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)
@ -285,11 +289,13 @@ cd "$ZIGDIR/ci"
"$ZIG" run update-download-page.zig "$ZIG" run update-download-page.zig
mv out "$TARBALLS_DIR/out" mv out "$TARBALLS_DIR/out"
cd "$WORKDIR/www.ziglang.org" cd "$WORKDIR"
git clone --depth=1 git@github.com:ziglang/www.ziglang.org.git
cd www.ziglang.org
# This is the user when pushing to the website repo. # This is the user when pushing to the website repo.
git config user.email "ziggy@ziglang.org" git config user.email "ziggy@ziglang.org"
git config user.name "Ziggy" git config user.name "Ziggy"
git pull
cp "$TARBALLS_DIR/out/index.json" data/releases.json cp "$TARBALLS_DIR/out/index.json" data/releases.json
git add data/releases.json git add data/releases.json

View File

@ -1,56 +1,70 @@
#!/bin/sh #!/bin/sh
# Requires cmake ninja-build
set -x set -x
set -e set -e
ZIGDIR="$(pwd)"
ARCH="$(uname -m)" ARCH="$(uname -m)"
DEPS_LOCAL="$HOME/local" TARGET="$ARCH-linux-musl"
OLD_ZIG="$DEPS_LOCAL/bin/zig" MCPU="baseline"
TARGET="${ARCH}-linux-musl" CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.256+271cc52a1"
PREFIX="$HOME/deps/$CACHE_BASENAME"
ZIG="$PREFIX/bin/zig"
mkdir -p "$DEPS_LOCAL" export PATH="$HOME/deps/wasmtime-v2.0.2-$ARCH-linux:$HOME/deps/qemu-linux-x86_64-6.1.0.1/bin:$PATH"
cd "$DEPS_LOCAL"
OLD_ZIG_VERSION="0.11.0-dev.256+271cc52a1" # Make the `zig version` number consistent.
wget https://ziglang.org/deps/zig+llvm+lld+clang-x86_64-linux-musl-$OLD_ZIG_VERSION.tar.xz # This will affect the cmake command below.
tar x --strip-components=1 -f zig+llvm+lld+clang-x86_64-linux-musl-$OLD_ZIG_VERSION.tar.xz git config core.abbrev 9
git fetch --unshallow || true
git fetch --tags
wget https://ziglang.org/deps/qemu-linux-x86_64-6.1.0.1.tar.xz export CC="$ZIG cc -target $TARGET -mcpu=$MCPU"
tar x --strip-components=1 -f qemu-linux-x86_64-6.1.0.1.tar.xz export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
wget https://github.com/bytecodealliance/wasmtime/releases/download/v2.0.2/wasmtime-v2.0.2-x86_64-linux.tar.xz rm -rf build-debug
tar x --strip-components=1 -f wasmtime-v2.0.2-x86_64-linux.tar.xz mkdir build-debug
rm -f LICENSE README.md cd build-debug
mv wasmtime bin/ cmake .. \
-DCMAKE_INSTALL_PREFIX="stage3-debug" \
-DCMAKE_PREFIX_PATH="$PREFIX" \
-DCMAKE_BUILD_TYPE=Debug \
-DZIG_TARGET_TRIPLE="$TARGET" \
-DZIG_TARGET_MCPU="$MCPU" \
-DZIG_STATIC=ON \
-GNinja
export PATH=$DEPS_LOCAL/bin:$PATH # 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
cd "$ZIGDIR" ninja install
echo "building stage3-debug with zig version $($OLD_ZIG version)"
"$OLD_ZIG" build \
--prefix stage3 \
--search-prefix "$DEPS_LOCAL" \
--zig-lib-dir lib \
-Denable-stage1 \
-Dstatic-llvm \
-Drelease \
-Duse-zig-libcxx \
-Dtarget="$TARGET"
echo "Looking for non-conforming code formatting..." echo "Looking for non-conforming code formatting..."
stage3/bin/zig fmt --check . \ stage3-debug/bin/zig fmt --check .. \
--exclude test/cases/ \ --exclude ../test/cases/ \
--exclude build --exclude ../build-debug \
--exclude ../build-release
# simultaneously test building self-hosted without LLVM and with 32-bit arm # simultaneously test building self-hosted without LLVM and with 32-bit arm
stage3/bin/zig build -Dtarget=arm-linux-musleabihf stage3-debug/bin/zig build -Dtarget=arm-linux-musleabihf
stage3/bin/zig build test docs \ stage3-debug/bin/zig build test docs \
-fqemu \ -fqemu \
-fwasmtime \ -fwasmtime \
-Dstatic-llvm \ -Dstatic-llvm \
-Dtarget=native-native-musl \ -Dtarget=native-native-musl \
--search-prefix "$DEPS_LOCAL" \ --search-prefix "$PREFIX" \
--zig-lib-dir lib --zig-lib-dir "$(pwd)/../lib"
# Look for HTML errors.
tidy --drop-empty-elements no -qe zig-cache/langref.html
# Produce the experimental std lib documentation.
mkdir -p "stage3-debug/doc/std"
stage3-debug/bin/zig test ../lib/std/std.zig \
-femit-docs=stage3-debug/doc/std \
-fno-emit-bin \
--zig-lib-dir "$(pwd)/../lib"

View File

@ -1,75 +1,86 @@
#!/bin/sh #!/bin/sh
# Requires cmake ninja-build
set -x set -x
set -e set -e
ZIGDIR="$(pwd)"
ARCH="$(uname -m)" ARCH="$(uname -m)"
DEPS_LOCAL="$HOME/local" TARGET="$ARCH-linux-musl"
OLD_ZIG="$DEPS_LOCAL/bin/zig"
TARGET="${ARCH}-linux-musl"
MCPU="baseline" MCPU="baseline"
CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.256+271cc52a1"
PREFIX="$HOME/deps/$CACHE_BASENAME"
ZIG="$PREFIX/bin/zig"
mkdir -p "$DEPS_LOCAL" export PATH="$HOME/deps/wasmtime-v2.0.2-$ARCH-linux:$HOME/deps/qemu-linux-x86_64-6.1.0.1/bin:$PATH"
cd "$DEPS_LOCAL"
OLD_ZIG_VERSION="0.11.0-dev.256+271cc52a1" # Make the `zig version` number consistent.
wget https://ziglang.org/deps/zig+llvm+lld+clang-x86_64-linux-musl-$OLD_ZIG_VERSION.tar.xz # This will affect the cmake command below.
tar x --strip-components=1 -f zig+llvm+lld+clang-x86_64-linux-musl-$OLD_ZIG_VERSION.tar.xz git config core.abbrev 9
git fetch --unshallow || true
git fetch --tags
wget https://ziglang.org/deps/qemu-linux-x86_64-6.1.0.1.tar.xz export CC="$ZIG cc -target $TARGET -mcpu=$MCPU"
tar x --strip-components=1 -f qemu-linux-x86_64-6.1.0.1.tar.xz export CXX="$ZIG c++ -target $TARGET -mcpu=$MCPU"
wget https://github.com/bytecodealliance/wasmtime/releases/download/v2.0.2/wasmtime-v2.0.2-x86_64-linux.tar.xz rm -rf build-release
tar x --strip-components=1 -f wasmtime-v2.0.2-x86_64-linux.tar.xz mkdir build-release
rm -f LICENSE README.md cd build-release
mv wasmtime bin/
export PATH=$DEPS_LOCAL/bin:$PATH
cd "$ZIGDIR"
echo "building stage3-release with zig version $($OLD_ZIG version)"
export CC="$OLD_ZIG cc -target $TARGET -mcpu=$MCPU"
export CXX="$OLD_ZIG c++ -target $TARGET -mcpu=$MCPU"
mkdir build
cd build
cmake .. \ cmake .. \
-DCMAKE_INSTALL_PREFIX="$(pwd)/stage3" \ -DCMAKE_INSTALL_PREFIX="stage3-release" \
-DCMAKE_PREFIX_PATH="$DEPS_LOCAL" \ -DCMAKE_PREFIX_PATH="$PREFIX" \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DZIG_TARGET_TRIPLE="$TARGET" \ -DZIG_TARGET_TRIPLE="$TARGET" \
-DZIG_TARGET_MCPU="$MCPU" \ -DZIG_TARGET_MCPU="$MCPU" \
-DZIG_STATIC=ON -DZIG_STATIC=ON \
-GNinja
# Now cmake will use zig as the C/C++ compiler. We reset the environment variables # 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. # so that installation and testing do not get affected by them.
unset CC unset CC
unset CXX unset CXX
make -j2 install ninja install
"stage3/bin/zig" build test \ echo "Looking for non-conforming code formatting..."
stage3-release/bin/zig fmt --check .. \
--exclude ../test/cases/ \
--exclude ../build-debug \
--exclude ../build-release
# simultaneously test building self-hosted without LLVM and with 32-bit arm
stage3-release/bin/zig build -Dtarget=arm-linux-musleabihf
stage3-release/bin/zig build test docs \
-fqemu \ -fqemu \
-fwasmtime \ -fwasmtime \
-Dstatic-llvm \ -Dstatic-llvm \
-Dtarget=native-native-musl \ -Dtarget=native-native-musl \
--search-prefix "$DEPS_LOCAL" \ --search-prefix "$PREFIX" \
--zig-lib-dir "$(pwd)/../lib"
# Look for HTML errors.
tidy --drop-empty-elements no -qe zig-cache/langref.html
# Produce the experimental std lib documentation.
mkdir -p "stage3-release/doc/std"
stage3-release/bin/zig test ../lib/std/std.zig \
-femit-docs=stage3-release/doc/std \
-fno-emit-bin \
--zig-lib-dir "$(pwd)/../lib" --zig-lib-dir "$(pwd)/../lib"
"stage3/bin/zig" build \ "stage3/bin/zig" build \
--prefix stage4 \ --prefix stage4-release \
-Denable-llvm \ -Denable-llvm \
-Denable-stage1 \ -Denable-stage1 \
-Dno-lib \ -Dno-lib \
-Drelease \ -Drelease \
-Dstrip \ -Dstrip \
-Dtarget=x86_64-linux-musl \ -Dtarget=$TARGET \
-Duse-zig-libcxx \ -Duse-zig-libcxx \
-Dversion-string="$(stage3/bin/zig version)" -Dversion-string="$(stage3-release/bin/zig version)"
# diff returns an error code if the files differ. # diff returns an error code if the files differ.
echo "If the following command fails, it means nondeterminism has been" echo "If the following command fails, it means nondeterminism has been"
echo "introduced, making stage3 and stage4 no longer byte-for-byte identical." echo "introduced, making stage3 and stage4 no longer byte-for-byte identical."
diff stage3/bin/zig stage4/bin/zig diff stage3-release/bin/zig stage4-release/bin/zig

View File

@ -3,8 +3,6 @@
set -x set -x
set -e set -e
echo "Running on Version:" $MACOS_VERSION
# Script assumes the presence of the following: # Script assumes the presence of the following:
# s3cmd # s3cmd

View File

@ -3,8 +3,6 @@
set -x set -x
set -e set -e
echo "Running on Version:" $MACOS_VERSION
# Script assumes the presence of the following: # Script assumes the presence of the following:
# s3cmd # s3cmd
@ -13,7 +11,7 @@ TARGET="$ARCH-macos-none"
MCPU="baseline" MCPU="baseline"
CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0" CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
PREFIX="$HOME/$CACHE_BASENAME" PREFIX="$HOME/$CACHE_BASENAME"
JOBS="-j2" JOBS="-j3"
rm -rf $PREFIX rm -rf $PREFIX
cd $HOME cd $HOME