Commit e21b6a712d
Changed files (21)
.builds
.github
workflows
ci
zinc
.builds/freebsd.yml
@@ -1,8 +0,0 @@
-image: freebsd/latest
-secrets:
- - 51bfddf5-86a6-4e01-8576-358c72a4a0a4
- - be22288f-b1bc-4243-abe3-43d8f0e7079b
-sources:
- - https://github.com/ziglang/zig
-tasks:
- - build: cd zig && ./ci/srht/freebsd_script
.github/workflows/ci.yaml
@@ -10,8 +10,22 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- - name: Run Build Script
+ - name: Build and Test
run: sh ./ci/linux/build-aarch64.sh
+ x86_64-linux-debug:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Build and Test
+ run: sh ./ci/linux/build-x86_64-debug.sh
+ x86_64-linux-release:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Build and Test
+ run: sh ./ci/linux/build-x86_64-release.sh
x86_64-macos:
strategy:
matrix:
@@ -47,7 +61,7 @@ jobs:
- name: Run Build Script
run: ./ci/windows/build.ps1
build-tarballs:
- needs: [aarch64-linux, x86_64-macos, aarch64-macos, x86_64-windows]
+ 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]
steps:
- name: Checkout
ci/azure/macos_script
@@ -1,106 +0,0 @@
-#!/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.4560+828735ac0"
-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"
-
-# Produce the experimental std lib documentation.
-mkdir -p "stage3-release/doc/std"
-stage3-release/bin/zig test "$(pwd)/../lib/std/std.zig" \
- --zig-lib-dir "$(pwd)/../lib" \
- -femit-docs="$(pwd)/stage3-release/doc/std" \
- -fno-emit-bin
-
-if [ "${BUILD_REASON}" != "PullRequest" ]; then
- # Remove the unnecessary bin dir in stage3-release/bin/zig
- mv stage3-release/bin/zig stage3-release/
- rmdir stage3-release/bin
-
- # Remove the unnecessary zig dir in stage3-release/lib/zig/std/std.zig
- mv stage3-release/lib/zig stage3-release/lib2
- rmdir stage3-release/lib
- mv stage3-release/lib2 stage3-release/lib
-
- mv ../LICENSE stage3-release/
- mv ../zig-cache/langref.html stage3-release/doc
-
- 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
ci/azure/on_master_success
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-# We do not set -x because this would leak the oauth access token.
-set +x
-
-set -e
-
-sudo apt-get update -y
-sudo apt-get install -y curl jq
-
-OAUTH_TOKEN="$(cat "$DOWNLOADSECUREFILE_SECUREFILEPATH")"
-./ci/srht/on_master_success "$VERSION" "$OAUTH_TOKEN"
ci/azure/pipelines.yml
@@ -1,169 +0,0 @@
-jobs:
-- job: BuildMacOS
- pool:
- vmImage: 'macOS-11'
- timeoutInMinutes: 360
- steps:
- - task: DownloadSecureFile@1
- inputs:
- secureFile: s3cfg
- - script: ci/azure/macos_script
- name: main
- displayName: 'Build and test'
-- job: BuildWindows
- timeoutInMinutes: 360
- pool:
- vmImage: 'windows-2019'
- variables:
- TARGET: 'x86_64-windows-gnu'
- ZIG_LLVM_CLANG_LLD_NAME: 'zig+llvm+lld+clang-${{ variables.TARGET }}-0.11.0-dev.25+499dddb4c'
- ZIG_LLVM_CLANG_LLD_URL: 'https://ziglang.org/deps/${{ variables.ZIG_LLVM_CLANG_LLD_NAME }}.zip'
- steps:
- - pwsh: |
- (New-Object Net.WebClient).DownloadFile("$(ZIG_LLVM_CLANG_LLD_URL)", "${ZIG_LLVM_CLANG_LLD_NAME}.zip")
- & 'C:\Program Files\7-Zip\7z.exe' x "${ZIG_LLVM_CLANG_LLD_NAME}.zip"
- name: install
- displayName: 'Install ZIG/LLVM/CLANG/LLD'
-
- - pwsh: |
- Set-Variable -Name ZIGLIBDIR -Value "$(Get-Location)\lib"
- Set-Variable -Name ZIGINSTALLDIR -Value "$(Get-Location)\stage3-release"
- Set-Variable -Name ZIGPREFIXPATH -Value "$(Get-Location)\$(ZIG_LLVM_CLANG_LLD_NAME)"
-
- function CheckLastExitCode {
- if (!$?) {
- exit 1
- }
- return 0
- }
-
- # Make the `zig version` number consistent.
- # This will affect the `zig build` command below which uses `git describe`.
- git config core.abbrev 9
- git fetch --tags
- if ((git rev-parse --is-shallow-repository) -eq "true") {
- git fetch --unshallow # `git describe` won't work on a shallow repo
- }
-
- & "$ZIGPREFIXPATH\bin\zig.exe" build `
- --prefix "$ZIGINSTALLDIR" `
- --search-prefix "$ZIGPREFIXPATH" `
- --zig-lib-dir "$ZIGLIBDIR" `
- -Denable-stage1 `
- -Dstatic-llvm `
- -Drelease `
- -Dstrip `
- -Duse-zig-libcxx `
- -Dtarget=$(TARGET)
- CheckLastExitCode
- name: build
- displayName: 'Build'
-
- - pwsh: |
- Set-Variable -Name ZIGLIBDIR -Value "$(Get-Location)\lib"
- Set-Variable -Name ZIGINSTALLDIR -Value "$(Get-Location)\stage3-release"
- Set-Variable -Name ZIGPREFIXPATH -Value "$(Get-Location)\$(ZIG_LLVM_CLANG_LLD_NAME)"
-
- function CheckLastExitCode {
- if (!$?) {
- exit 1
- }
- return 0
- }
-
- & "$ZIGINSTALLDIR\bin\zig.exe" build test docs `
- --search-prefix "$ZIGPREFIXPATH" `
- -Dstatic-llvm `
- -Dskip-non-native
- CheckLastExitCode
-
- # Produce the experimental std lib documentation.
- mkdir "$ZIGINSTALLDIR\doc\std" -force
- & "$ZIGINSTALLDIR\bin\zig.exe" test "$ZIGLIBDIR\std\std.zig" `
- --zig-lib-dir "$ZIGLIBDIR" `
- -femit-docs="$ZIGINSTALLDIR\doc\std" `
- -fno-emit-bin
-
- name: test
- displayName: 'Test'
-
- - task: DownloadSecureFile@1
- inputs:
- name: aws_credentials
- secureFile: aws_credentials
-
- - pwsh: |
- $Env:AWS_SHARED_CREDENTIALS_FILE = "$Env:DOWNLOADSECUREFILE_SECUREFILEPATH"
-
- # Workaround Azure networking issue
- # https://github.com/aws/aws-cli/issues/5749
- $Env:AWS_EC2_METADATA_DISABLED = "true"
- $Env:AWS_REGION = "us-west-2"
-
- mv LICENSE stage3-release/
- mv zig-cache/langref.html stage3-release/
- mv stage3-release/bin/zig.exe stage3-release/
- rmdir stage3-release/bin
-
- # Remove the unnecessary zig dir in $prefix/lib/zig/std/std.zig
- mv stage3-release/lib/zig stage3-release/lib2
- rmdir stage3-release/lib
- mv stage3-release/lib2 stage3-release/lib
-
- Set-Variable -Name VERSION -Value $(./stage3-release/zig.exe version)
- Set-Variable -Name DIRNAME -Value "zig-windows-x86_64-$VERSION"
- Set-Variable -Name TARBALL -Value "$DIRNAME.zip"
- mv stage3-release "$DIRNAME"
- 7z a "$TARBALL" "$DIRNAME"
-
- aws s3 cp `
- "$TARBALL" `
- s3://ziglang.org/builds/ `
- --acl public-read `
- --cache-control 'public, max-age=31536000, immutable'
-
- Set-Variable -Name SHASUM -Value (Get-FileHash "$TARBALL" -Algorithm SHA256 | select-object -ExpandProperty Hash).ToLower()
- Set-Variable -Name BYTESIZE -Value (Get-Item "$TARBALL").length
-
- Set-Variable -Name JSONFILE -Value "windows-${Env:BUILD_SOURCEBRANCHNAME}.json"
- echo $null > $JSONFILE
- echo ('{"tarball": "' + $TARBALL + '",') >> $JSONFILE
- echo ('"shasum": "' + $SHASUM + '",') >> $JSONFILE
- echo ('"size": ' + $BYTESIZE + '}' ) >> $JSONFILE
-
- aws s3 cp `
- "$JSONFILE" `
- s3://ziglang.org/builds/ `
- --acl public-read `
- --cache-control 'max-age=0, must-revalidate'
-
- aws s3 cp `
- "$JSONFILE" `
- "s3://ziglang.org/builds/x86_64-windows-${VERSION}.json" `
- --acl public-read
-
- 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"
-
- name: upload
- condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'))
- displayName: 'Upload'
-
-- job: OnMasterSuccess
- dependsOn:
- - BuildMacOS
- - BuildWindows
- condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
- strategy:
- maxParallel: 1
- pool:
- vmImage: 'ubuntu-20.04'
- variables:
- version: $[ dependencies.BuildMacOS.outputs['main.version'] ]
- steps:
- - task: DownloadSecureFile@1
- inputs:
- secureFile: oauth_token
- - script: ci/azure/on_master_success
- displayName: 'master branch success hook'
ci/linux/build-tarballs.sh
@@ -12,7 +12,7 @@ WORKDIR="$(pwd)"
ARCH="$(uname -m)"
TARGET="$ARCH-linux-musl"
MCPU="baseline"
-CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
+CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.11.0-dev.256+271cc52a1"
PREFIX="$HOME/deps/$CACHE_BASENAME"
ZIG="$PREFIX/bin/zig"
@@ -45,7 +45,6 @@ unset CXX
ninja install
-# Make sure our ZIG_VERSION below is correct.
ZIG_VERSION="$(stage3-release/bin/zig version)"
BOOTSTRAP_SRC="$WORKDIR/zig-bootstrap"
TARBALLS_DIR="$WORKDIR/tarballs"
@@ -56,29 +55,46 @@ rm -rf zig
cp -r "$ZIGDIR" ./
sed -i "/^ZIG_VERSION=\".*\"\$/c\\ZIG_VERSION=\"$ZIG_VERSION\"" build
-CMAKE_GENERATOR=Ninja ./build aarch64-linux-musl baseline
-CMAKE_GENERATOR=Ninja ./build x86_64-linux-musl baseline
-#CMAKE_GENERATOR=Ninja ./build x86-linux-musl baseline
-#CMAKE_GENERATOR=Ninja ./build riscv64-linux-musl baseline
-#CMAKE_GENERATOR=Ninja ./build arm-linux-musleabihf generic+v7a
-CMAKE_GENERATOR=Ninja ./build x86_64-macos-none baseline
-CMAKE_GENERATOR=Ninja ./build aarch64-macos-none apple_a14
-CMAKE_GENERATOR=Ninja ./build x86_64-windows-gnu baseline
-#CMAKE_GENERATOR=Ninja ./build x86-windows-gnu baseline
-#CMAKE_GENERATOR=Ninja ./build aarch64-windows-gnu baseline
+# Unfortunately 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
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-linux-musl baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86-linux-musl baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build riscv64-linux-musl baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build arm-linux-musleabihf generic+v7a
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-macos-none baseline
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-macos-none apple_a14
+PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86_64-windows-gnu baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build x86-windows-gnu baseline
+#PATH="$HOME/local/bin:$PATH" CMAKE_GENERATOR=Ninja ./build aarch64-windows-gnu baseline
ZIG="$BOOTSTRAP_SRC/out/host/bin/zig"
-cd "$ZIGDIR"
-SRC_TARBALL="$TARBALLS_DIR/zig-$ZIG_VERSION.tar.xz"
-git archive --format=tar.xz -o "$SRC_TARBALL" --prefix=zig-$ZIG_VERSION/ $ZIG_VERSION
+rm -rf "$TARBALLS_DIR"
+mkdir "$TARBALLS_DIR"
+cd "$TARBALLS_DIR"
+
+cp -r "$ZIGDIR" ./
+rm -rf \
+ "zig/.github" \
+ "zig/.gitignore" \
+ "zig/.git" \
+ "zig/ci" \
+ "zig/CODE_OF_CONDUCT.md" \
+ "zig/CONTRIBUTING.md" \
+ "zig/.builds" \
+ "zig/build" \
+ "zig/build-release" \
+ "zig/build-debug" \
+ "zig/zig-cache"
+mv zig "zig-$ZIG_VERSION"
+tar cfJ "zig-$ZIG_VERSION.tar.xz" "zig-$ZIG_VERSION"
cd "$BOOTSTRAP_SRC"
"$ZIG" build --build-file zig/build.zig docs
LANGREF_HTML="$BOOTSTRAP_SRC/zig/zig-cache/langref.html"
+# Look for HTML errors.
+tidy --drop-empty-elements no -qe "$LANGREF_HTML"
-rm -rf "$TARBALLS_DIR"
-mkdir "$TARBALLS_DIR"
cd "$TARBALLS_DIR"
cp -r $BOOTSTRAP_SRC/out/zig-aarch64-linux-musl-baseline zig-linux-aarch64-$ZIG_VERSION/
@@ -166,17 +182,17 @@ mkdir zig-macos-x86_64-$ZIG_VERSION/doc/
#mkdir zig-freebsd-x86_64-$ZIG_VERSION/doc/
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
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-armv7a -target arm-linux-musl -mcpu=generic+v7a -fno-emit-bin
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86 -target x86-linux-musl -fno-emit-bin
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-riscv64 -target riscv64-linux-musl -fno-emit-bin
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-linux-x86_64 -target x86_64-linux-musl -fno-emit-bin
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86 -target x86-windows-gnu -fno-emit-bin
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-x86_64 -target x86_64-windows-gnu -fno-emit-bin
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-windows-aarch64 -target aarch64-windows-gnu -fno-emit-bin
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-x86_64 -target x86_64-macos -fno-emit-bin
-stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-macos-aarch64 -target aarch64-macos -fno-emit-bin
-#stage3-release/bin/zig test ../lib/std/std.zig -femit-docs=doc-freebsd-x86_64 -target x86_64-freebsd -fno-emit-bin
+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-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-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-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
cd "$TARBALLS_DIR"
cp -r $REL_SRC_BUILD/doc-linux-aarch64 zig-linux-aarch64-$ZIG_VERSION/doc/std
@@ -203,18 +219,6 @@ cp $LANGREF_HTML zig-macos-aarch64-$ZIG_VERSION/doc/
cp $LANGREF_HTML zig-macos-x86_64-$ZIG_VERSION/doc/
#cp $LANGREF_HTML zig-freebsd-x86_64-$ZIG_VERSION/doc/
-#rm -rf zig-linux-aarch64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-armv7a-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-x86-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-riscv64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-linux-x86_64-$ZIG_VERSION/doc/std/src
-##rm -rf zig-windows-x86-$ZIG_VERSION/doc/std/src
-#rm -rf zig-windows-x86_64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-windows-aarch64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-macos-aarch64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-macos-x86_64-$ZIG_VERSION/doc/std/src
-#rm -rf zig-freebsd-x86_64-$ZIG_VERSION/doc/std/src
-
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/
@@ -241,8 +245,9 @@ s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" z
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/
-export SRC_SHASUM=$(sha256sum $SRC_TARBALL | cut '-d ' -f1)
-export SRC_BYTESIZE=$(wc -c < $SRC_TARBALL)
+export SRC_TARBALL="zig-$ZIG_VERSION.tar.xz"
+export SRC_SHASUM=$(sha256sum "zig-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)
+export SRC_BYTESIZE=$(wc -c < "zig-$ZIG_VERSION.tar.xz")
export X86_64_WINDOWS_TARBALL="zig-windows-x86_64-$ZIG_VERSION.zip"
export X86_64_WINDOWS_BYTESIZE=$(wc -c < "zig-windows-x86_64-$ZIG_VERSION.zip")
@@ -260,9 +265,9 @@ export X86_64_LINUX_TARBALL="zig-linux-x86_64-$ZIG_VERSION.tar.xz"
export X86_64_LINUX_BYTESIZE=$(wc -c < "zig-linux-x86_64-$ZIG_VERSION.tar.xz")
export X86_64_LINUX_SHASUM="$(sha256sum "zig-linux-x86_64-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)"
-#export AARCH64_LINUX_TARBALL="zig-linux-aarch64-$ZIG_VERSION.tar.xz"
-#export AARCH64_LINUX_BYTESIZE=$(wc -c < "zig-linux-aarch64-$ZIG_VERSION.tar.xz")
-#export AARCH64_LINUX_SHASUM="$(sha256sum "zig-linux-aarch64-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)"
+export AARCH64_LINUX_TARBALL="zig-linux-aarch64-$ZIG_VERSION.tar.xz"
+export AARCH64_LINUX_BYTESIZE=$(wc -c < "zig-linux-aarch64-$ZIG_VERSION.tar.xz")
+export AARCH64_LINUX_SHASUM="$(sha256sum "zig-linux-aarch64-$ZIG_VERSION.tar.xz" | cut '-d ' -f1)"
#export X86_64_FREEBSD_TARBALL="zig-freebsd-x86_64-$ZIG_VERSION.tar.xz"
#export X86_64_FREEBSD_BYTESIZE=$(wc -c < "zig-freebsd-x86_64-$ZIG_VERSION.tar.xz")
@@ -276,9 +281,9 @@ export MASTER_DATE="$(date +%Y-%m-%d)"
export MASTER_VERSION="$ZIG_VERSION"
# Create index.json and update the website repo.
-CIDIR="$ZIGDIR/ci"
-cd "$CIDIR"
+cd "$ZIGDIR/ci"
"$ZIG" run update-download-page.zig
+mv out "$TARBALLS_DIR/out"
cd "$WORKDIR/www.ziglang.org"
# This is the user when pushing to the website repo.
@@ -286,7 +291,7 @@ git config user.email "ziggy@ziglang.org"
git config user.name "Ziggy"
git pull
-cp "$CIDIR/out/index.json" data/releases.json
+cp "$TARBALLS_DIR/out/index.json" data/releases.json
git add data/releases.json
git commit -m "CI: update releases"
git push origin master
@@ -304,7 +309,7 @@ git push origin master
# * Figure out how to adjust the Cloudfront settings to increase the max size for
# auto-compressed objects.
# * Migrate to fastly.
-DOCDIR="$REL_SRC_BUILD/doc-linux-aarch64"
+DOCDIR="$TARBALLS_DIR/zig-linux-aarch64-$ZIG_VERSION/doc"
s3cmd put -P --no-mime-magic \
--add-header="Cache-Control: max-age=0, must-revalidate" \
"$LANGREF_HTML" s3://ziglang.org/documentation/master/index.html
ci/zinc/linux_test_stage3_debug โ ci/linux/build-x86_64-debug.sh
@@ -3,49 +3,55 @@
set -x
set -e
+ZIGDIR="$(pwd)"
ARCH="$(uname -m)"
-DEPS_LOCAL="/deps/local"
+DEPS_LOCAL="$HOME/local"
OLD_ZIG="$DEPS_LOCAL/bin/zig"
TARGET="${ARCH}-linux-musl"
MCPU="baseline"
+mkdir -p "$DEPS_LOCAL"
+cd "$DEPS_LOCAL"
+
+wget https://ziglang.org/deps/zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+tar x --strip-components=1 -f zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+
+wget https://ziglang.org/deps/qemu-linux-x86_64-6.1.0.1.tar.xz
+tar x --strip-components=1 -f qemu-linux-x86_64-6.1.0.1.tar.xz
+
+wget https://github.com/bytecodealliance/wasmtime/releases/download/v2.0.2/wasmtime-v2.0.2-x86_64-linux.tar.xz
+tar x --strip-components=1 -f wasmtime-v2.0.2-x86_64-linux.tar.xz
+rm -f LICENSE README.md
+mv wasmtime bin/
+
export PATH=$DEPS_LOCAL/bin:$PATH
+cd "$ZIGDIR"
echo "building stage3-debug with zig version $($OLD_ZIG version)"
-# Override the cache directories so that we don't clobber with the release
-# testing script which is running concurrently and in the same directory.
-# Normally we want processes to cooperate, but in this case we want them isolated.
-export ZIG_LOCAL_CACHE_DIR="$(pwd)/zig-cache-local-debug"
-export ZIG_GLOBAL_CACHE_DIR="$(pwd)/zig-cache-global-debug"
-
export CC="$OLD_ZIG cc -target $TARGET -mcpu=$MCPU"
export CXX="$OLD_ZIG c++ -target $TARGET -mcpu=$MCPU"
-mkdir build-debug
-cd build-debug
+mkdir build
+cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX="$(pwd)/stage3" \
-DCMAKE_PREFIX_PATH="$DEPS_LOCAL" \
-DCMAKE_BUILD_TYPE=Debug \
-DZIG_STATIC=ON \
- -DZIG_USE_LLVM_CONFIG=OFF \
- -GNinja
+ -DZIG_USE_LLVM_CONFIG=OFF
# 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
-ninja install
+make -j2 install
echo "Looking for non-conforming code formatting..."
stage3/bin/zig fmt --check .. \
--exclude ../test/cases/ \
- --exclude ../build-debug \
- --exclude ../build-release \
- --exclude "$ZIG_LOCAL_CACHE_DIR" \
- --exclude "$ZIG_GLOBAL_CACHE_DIR"
+ --exclude ../build
# simultaneously test building self-hosted without LLVM and with 32-bit arm
stage3/bin/zig build -Dtarget=arm-linux-musleabihf
@@ -57,6 +63,3 @@ stage3/bin/zig build test \
-Dtarget=native-native-musl \
--search-prefix "$DEPS_LOCAL" \
--zig-lib-dir "$(pwd)/../lib"
-
-# Explicit exit helps show last command duration.
-exit
ci/linux/build-x86_64-release.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+set -x
+set -e
+
+ZIGDIR="$(pwd)"
+ARCH="$(uname -m)"
+DEPS_LOCAL="$HOME/local"
+OLD_ZIG="$DEPS_LOCAL/bin/zig"
+TARGET="${ARCH}-linux-musl"
+MCPU="baseline"
+
+mkdir -p "$DEPS_LOCAL"
+cd "$DEPS_LOCAL"
+
+wget https://ziglang.org/deps/zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+tar x --strip-components=1 -f zig+llvm+lld+clang-x86_64-linux-musl-0.10.0-dev.4560+828735ac0.tar.xz
+
+wget https://ziglang.org/deps/qemu-linux-x86_64-6.1.0.1.tar.xz
+tar x --strip-components=1 -f qemu-linux-x86_64-6.1.0.1.tar.xz
+
+wget https://github.com/bytecodealliance/wasmtime/releases/download/v2.0.2/wasmtime-v2.0.2-x86_64-linux.tar.xz
+tar x --strip-components=1 -f wasmtime-v2.0.2-x86_64-linux.tar.xz
+rm -f LICENSE README.md
+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 .. \
+ -DCMAKE_INSTALL_PREFIX="$(pwd)/stage3" \
+ -DCMAKE_PREFIX_PATH="$DEPS_LOCAL" \
+ -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 -j2 install
+
+"stage3/bin/zig" build test \
+ -fqemu \
+ -fwasmtime \
+ -Dstatic-llvm \
+ -Dtarget=native-native-musl \
+ --search-prefix "$DEPS_LOCAL" \
+ --zig-lib-dir "$(pwd)/../lib"
+
+"stage3/bin/zig" build \
+ --prefix stage4 \
+ -Dconfig_h="build/config.h" \
+ -Denable-llvm \
+ -Denable-stage1 \
+ -Dno-lib \
+ -Drelease \
+ -Dstrip \
+ -Dtarget=x86_64-linux-musl \
+ -Duse-zig-libcxx \
+ -Dversion-string="$(stage3/bin/zig version)"
+
+# diff returns an error code if the files differ.
+echo "If the following command fails, it means nondeterminism has been"
+echo "introduced, making stage3 and stage4 no longer byte-for-byte identical."
+diff stage3/bin/zig stage4/bin/zig
ci/srht/freebsd_script
@@ -1,114 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-sudo pkg update -fq
-sudo pkg install -y cmake py39-s3cmd wget curl jq samurai
-
-ZIGDIR="$(pwd)"
-TARGET="x86_64-freebsd-gnu"
-MCPU="baseline"
-CACHE_BASENAME="zig+llvm+lld+clang-$TARGET-0.10.0-dev.4560+828735ac0"
-PREFIX="$HOME/$CACHE_BASENAME"
-
-cd $HOME
-wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
-tar xf "$CACHE_BASENAME.tar.xz"
-
-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
-
-# SourceHut reports that it is a terminal that supports escape codes, but it
-# is a filthy liar. Here we tell Zig to not try to send any terminal escape
-# codes to show progress.
-export TERM=dumb
-
-mkdir build
-cd build
-
-
-cmake .. \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_PREFIX_PATH=$PREFIX \
- -DZIG_TARGET_TRIPLE="$TARGET" \
- -DZIG_TARGET_MCPU="$MCPU" \
- -DZIG_STATIC=ON \
- -GNinja
-
-# TODO: eliminate this workaround. Without this, zig does not end up passing
-# -isystem /usr/include when building libc++, resulting in #include <sys/endian.h>
-# "file not found" errors.
-echo "include_dir=/usr/include" >>libc.txt
-echo "sys_include_dir=/usr/include" >>libc.txt
-echo "crt_dir=/usr/lib" >>libc.txt
-echo "msvc_lib_dir=" >>libc.txt
-echo "kernel32_lib_dir=" >>libc.txt
-echo "gcc_dir=" >>libc.txt
-ZIG_LIBC_TXT="$(pwd)/libc.txt"
-
-ZIG_LIBC="$ZIG_LIBC_TXT" samu install
-
-# Here we skip some tests to save time.
-stage3/bin/zig build test docs \
- --zig-lib-dir "$(pwd)/../lib" \
- -Dstatic-llvm \
- --search-prefix "$PREFIX" \
- -Dskip-stage1 \
- -Dskip-non-native
-
-# Produce the experimental std lib documentation.
-mkdir -p "stage3/doc/std"
-stage3/bin/zig test "$(pwd)/../lib/std/std.zig" \
- --zig-lib-dir "$(pwd)/../lib" \
- -femit-docs="$(pwd)/stage3/doc/std/" \
- -fno-emit-bin
-
-if [ -f ~/.s3cfg ]; then
- # Remove the unnecessary bin dir in stage3/bin/zig
- mv stage3/bin/zig stage3/
- rmdir stage3/bin
-
- # Remove the unnecessary zig dir in stage3/lib/zig/std/std.zig
- mv stage3/lib/zig stage3/lib2
- rmdir stage3/lib
- mv stage3/lib2 stage3/lib
-
- mv ../LICENSE stage3/
- mv ../zig-cache/langref.html stage3/doc/
-
- GITBRANCH=$(basename $GITHUB_REF)
- VERSION=$(stage3/zig version)
- DIRNAME="zig-freebsd-x86_64-$VERSION"
- TARBALL="$DIRNAME.tar.xz"
- mv stage3 "$DIRNAME"
- tar cfJ "$TARBALL" "$DIRNAME"
-
- 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="freebsd-$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/x86_64-freebsd-$VERSION.json"
-
- if [ "$GITBRANCH" = "master" ]; then
- # avoid leaking oauth token
- set +x
-
- OAUTH_TOKEN="$(cat ~/.oauth_token)"
- cd "$ZIGDIR"
- ./ci/srht/on_master_success "$VERSION" "$OAUTH_TOKEN"
- fi
-fi
ci/srht/netbsd_script
@@ -1,97 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-sudo pkgin -y update
-sudo pkgin -y upgrade
-sudo pkgin -y install cmake samurai curl jq py27-s3cmd wget clang
-
-ZIGDIR="$(pwd)"
-CACHE_BASENAME="zig+llvm+lld+clang-x86_64-netbsd-gnu-0.8.0"
-PREFIX="$HOME/$CACHE_BASENAME"
-
-cd $HOME
-wget -nv "https://ziglang.org/deps/$CACHE_BASENAME.tar.xz"
-tar xf "$CACHE_BASENAME.tar.xz"
-
-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
-
-# SourceHut reports that it is a terminal that supports escape codes, but it
-# is a filthy liar. Here we tell Zig to not try to send any terminal escape
-# codes to show progress.
-export TERM=dumb
-
-mkdir build
-cd build
-export CC="$PREFIX/bin/zigcc"
-export CXX="$PREFIX/bin/zigcxx"
-echo "#!/bin/sh
-env CC=\"clang\" $PREFIX/bin/zig cc \"\$@\"" > $CC
-echo "#!/bin/sh
-env CC=\"clang\" $PREFIX/bin/zig c++ \"\$@\"" > $CXX
-chmod +x $CC
-chmod +x $CXX
-
-cmake .. \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_PREFIX_PATH=$PREFIX \
- "-DCMAKE_INSTALL_PREFIX=$(pwd)/release" \
- -DZIG_STATIC=ON \
- -DZIG_TARGET_TRIPLE=x86_64-netbsd-none \
- -GNinja
-samu install
-
-unset CC
-unset CXX
-
-# TODO ld.lld: error: undefined symbol: main
-#>>> referenced by crt0-common.c
-#>>> /usr/lib/crt0.o:(___start)
-#release/bin/zig test ../test/behavior.zig -fno-stage1 -fLLVM -I ../test
-
-# Here we skip some tests to save time.
-release/bin/zig build test -Dskip-stage1 -Dskip-non-native
-
-if [ -f ~/.s3cfg ]; then
- mv ../LICENSE release/
- mv ../zig-cache/langref.html release/
- mv release/bin/zig release/
- rmdir release/bin
-
- GITBRANCH=$(basename $GITHUB_REF)
- VERSION=$(release/zig version)
- DIRNAME="zig-netbsd-x86_64-$VERSION"
- TARBALL="$DIRNAME.tar.xz"
- mv release "$DIRNAME"
- tar cfJ "$TARBALL" "$DIRNAME"
-
- 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="netbsd-$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/x86_64-netbsd-$VERSION.json"
-
- if [ "$GITBRANCH" = "master" ]; then
- # avoid leaking oauth token
- set +x
-
- OAUTH_TOKEN="$(cat ~/.oauth_token)"
- cd "$ZIGDIR"
- ./ci/srht/on_master_success "$VERSION" "$OAUTH_TOKEN"
- fi
-fi
ci/srht/on_master_success
@@ -1,50 +0,0 @@
-#!/bin/sh
-
-# This script must run on a lot of different platforms.
-# It assumes that the following things are installed:
-# * curl
-# * jq
-# * cat
-
-# We do not set -x because this would leak the oauth access token.
-set +x
-
-set -e
-
-VERSION="$1"
-OAUTH_TOKEN="$2"
-YML_FILE="tmp.yml"
-
-if [ -z "$VERSION" ]; then
- echo "missing VERSION parameter"
- exit 1
-fi
-
-if [ -z "$OAUTH_TOKEN" ]; then
- echo "missing OAUTH_TOKEN parameter"
- exit 1
-fi
-
-cat <<EOF >"$YML_FILE"
-image: alpine/latest
-packages:
- - py3-pip
- - curl
- - jq
- - xz
-secrets:
- - 51bfddf5-86a6-4e01-8576-358c72a4a0a4
- - 44e2bd57-1d07-42bf-925e-22a36119041d
-sources:
- - https://github.com/ziglang/zig
-tasks:
- - build: cd zig && ./ci/srht/update_download_page $VERSION
-EOF
-
-jq <$YML_FILE -sR '{
- "manifest": .,
- }' | curl \
- -H Authorization:"token $OAUTH_TOKEN" \
- -H Content-Type:application/json \
- -X POST \
- -d @- "https://builds.hut.lavatech.top/api/jobs"
ci/srht/update_download_page
@@ -1,150 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-VERSION="$1"
-SRCDIR="$(pwd)"
-NATIVE_TARBALL="zig-linux-$(uname -m)-$VERSION.tar.xz"
-
-# Check for all the builds being completed. It's expected that this script is run several times
-# before they are all complete.
-#AARCH64_LINUX_JSON_URL="https://ziglang.org/builds/aarch64-linux-$VERSION.json"
-X86_64_LINUX_JSON_URL="https://ziglang.org/builds/x86_64-linux-$VERSION.json"
-X86_64_WINDOWS_JSON_URL="https://ziglang.org/builds/x86_64-windows-$VERSION.json"
-AARCH64_MACOS_JSON_URL="https://ziglang.org/builds/aarch64-macos-$VERSION.json"
-X86_64_MACOS_JSON_URL="https://ziglang.org/builds/x86_64-macos-$VERSION.json"
-X86_64_FREEBSD_JSON_URL="https://ziglang.org/builds/x86_64-freebsd-$VERSION.json"
-#X86_64_NETBSD_JSON_URL="https://ziglang.org/builds/x86_64-netbsd-$VERSION.json"
-
-# If any of these fail, it's not really this job failing; rather we have detected
-# that this job will be called again later when other jobs have completed.
-#curl --fail -I "$AARCH64_LINUX_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_LINUX_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_WINDOWS_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$AARCH64_MACOS_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_MACOS_JSON_URL" >/dev/null || exit 0
-curl --fail -I "$X86_64_FREEBSD_JSON_URL" >/dev/null || exit 0
-#curl --fail -I "$X86_64_NETBSD_JSON_URL" >/dev/null || exit 0
-
-# Without --user, this gave me:
-# ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied
-pip3 install s3cmd --user
-S3CMD="$HOME/.local/bin/s3cmd"
-
-# Refresh this with `ssh-keyscan github.com` from a trusted Internet connection.
-# We hard code the public key here to detect man-in-the-middle attacks.
-echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
-
-# We don't want the .git folder inside the tarball.
-rm -rf .git
-
-cd "$HOME"
-wget "https://ziglang.org/builds/$NATIVE_TARBALL"
-tar xf "$NATIVE_TARBALL"
-ZIGDIR="$(pwd)/$(basename $NATIVE_TARBALL .tar.xz)"
-ZIG="$ZIGDIR/zig"
-LANGREF="$ZIGDIR/doc/langref.html"
-SRCTARBALLDIR="zig-$VERSION"
-export SRC_TARBALL="$SRCTARBALLDIR.tar.xz"
-mv "$SRCDIR" "$SRCTARBALLDIR"
-tar cfJ "$SRC_TARBALL" "$SRCTARBALLDIR"
-export SRC_SHASUM=$(sha256sum $SRC_TARBALL | cut '-d ' -f1)
-export SRC_BYTESIZE=$(wc -c < $SRC_TARBALL)
-
-X86_64_WINDOWS_JSON=$(curl --fail "$X86_64_WINDOWS_JSON_URL" || exit 1)
-export X86_64_WINDOWS_TARBALL="$(echo "$X86_64_WINDOWS_JSON" | jq .tarball -r)"
-export X86_64_WINDOWS_BYTESIZE="$(echo "$X86_64_WINDOWS_JSON" | jq .size -r)"
-export X86_64_WINDOWS_SHASUM="$(echo "$X86_64_WINDOWS_JSON" | jq .shasum -r)"
-
-AARCH64_MACOS_JSON=$(curl --fail "$AARCH64_MACOS_JSON_URL" || exit 1)
-export AARCH64_MACOS_TARBALL="$(echo "$AARCH64_MACOS_JSON" | jq .tarball -r)"
-export AARCH64_MACOS_BYTESIZE="$(echo "$AARCH64_MACOS_JSON" | jq .size -r)"
-export AARCH64_MACOS_SHASUM="$(echo "$AARCH64_MACOS_JSON" | jq .shasum -r)"
-
-X86_64_MACOS_JSON=$(curl --fail "$X86_64_MACOS_JSON_URL" || exit 1)
-export X86_64_MACOS_TARBALL="$(echo "$X86_64_MACOS_JSON" | jq .tarball -r)"
-export X86_64_MACOS_BYTESIZE="$(echo "$X86_64_MACOS_JSON" | jq .size -r)"
-export X86_64_MACOS_SHASUM="$(echo "$X86_64_MACOS_JSON" | jq .shasum -r)"
-
-X86_64_LINUX_JSON=$(curl --fail "$X86_64_LINUX_JSON_URL" || exit 1)
-export X86_64_LINUX_TARBALL="$(echo "$X86_64_LINUX_JSON" | jq .tarball -r)"
-export X86_64_LINUX_BYTESIZE="$(echo "$X86_64_LINUX_JSON" | jq .size -r)"
-export X86_64_LINUX_SHASUM="$(echo "$X86_64_LINUX_JSON" | jq .shasum -r)"
-
-#AARCH64_LINUX_JSON=$(curl --fail "$AARCH64_LINUX_JSON_URL" || exit 1)
-#export AARCH64_LINUX_TARBALL="$(echo "$AARCH64_LINUX_JSON" | jq .tarball -r)"
-#export AARCH64_LINUX_BYTESIZE="$(echo "$AARCH64_LINUX_JSON" | jq .size -r)"
-#export AARCH64_LINUX_SHASUM="$(echo "$AARCH64_LINUX_JSON" | jq .shasum -r)"
-
-X86_64_FREEBSD_JSON=$(curl --fail "$X86_64_FREEBSD_JSON_URL" || exit 1)
-export X86_64_FREEBSD_TARBALL="$(echo "$X86_64_FREEBSD_JSON" | jq .tarball -r)"
-export X86_64_FREEBSD_BYTESIZE="$(echo "$X86_64_FREEBSD_JSON" | jq .size -r)"
-export X86_64_FREEBSD_SHASUM="$(echo "$X86_64_FREEBSD_JSON" | jq .shasum -r)"
-
-#X86_64_NETBSD_JSON=$(curl --fail "$X86_64_NETBSD_JSON_URL" || exit 1)
-#export X86_64_NETBSD_TARBALL="$(echo "$X86_64_NETBSD_JSON" | jq .tarball -r)"
-#export X86_64_NETBSD_BYTESIZE="$(echo "$X86_64_NETBSD_JSON" | jq .size -r)"
-#export X86_64_NETBSD_SHASUM="$(echo "$X86_64_NETBSD_JSON" | jq .shasum -r)"
-
-export MASTER_DATE="$(date +%Y-%m-%d)"
-export MASTER_VERSION="$VERSION"
-
-# Create index.json and update the website repo.
-cd "$SRCTARBALLDIR/ci/srht"
-"$ZIG" run update-download-page.zig
-CIDIR="$(pwd)"
-
-cd "$HOME"
-
-# Update autodocs and langref directly to S3 in order to prevent the
-# www.ziglang.org git repo from growing too big.
-
-# Please do not edit this script to pre-compress the artifacts before they hit
-# S3. This prevents the website from working on browsers that do not support gzip
-# encoding. Cloudfront will automatically compress files if they are less than
-# 9.5 MiB, and the client advertises itself as capable of decompressing.
-# The data.js file is currently 16 MiB. In order to fix this problem, we need to do
-# one of the following things:
-# * Reduce the size of data.js to less than 9.5 MiB.
-# * Figure out how to adjust the Cloudfront settings to increase the max size for
-# auto-compressed objects.
-# * Migrate to fastly.
-$S3CMD put -P --no-mime-magic \
- --add-header="Cache-Control: max-age=0, must-revalidate" \
- "$LANGREF" s3://ziglang.org/documentation/master/index.html
-
-$S3CMD put -P --no-mime-magic \
- --add-header="Cache-Control: max-age=0, must-revalidate" \
- "$ZIGDIR/doc/std/index.html" s3://ziglang.org/documentation/master/std/index.html
-
-$S3CMD put -P --no-mime-magic \
- --add-header="Cache-Control: max-age=0, must-revalidate" \
- "$ZIGDIR/doc/std/main.js" s3://ziglang.org/documentation/master/std/main.js
-
-$S3CMD put -P --no-mime-magic \
- --add-header="Cache-Control: max-age=0, must-revalidate" \
- "$ZIGDIR/doc/std/data.js" s3://ziglang.org/documentation/master/std/data.js
-
-$S3CMD put -P --no-mime-magic --recursive \
- --add-header="Cache-Control: max-age=0, must-revalidate" \
- -m "text/html" \
- "$ZIGDIR/doc/std/src/" s3://ziglang.org/documentation/master/std/src/
-
-$S3CMD put -P --no-mime-magic \
- --add-header="cache-control: public, max-age=31536000, immutable" \
- "$HOME/$SRC_TARBALL" s3://ziglang.org/builds/
-
-git clone --depth 1 git@github.com:ziglang/www.ziglang.org.git
-cd www.ziglang.org
-WWWDIR="$(pwd)"
-# This is the user when pushing to the website repo.
-git config user.email "ziggy@ziglang.org"
-git config user.name "Ziggy"
-
-
-cd "$WWWDIR"
-cp "$CIDIR/out/index.json" data/releases.json
-git add data/releases.json
-git commit -m "CI: update releases"
-git push origin master
ci/zinc/build_aarch64_macos
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-RELEASE_STAGING="$DRONE_WORKSPACE/_release/staging"
-TARGET="aarch64-macos-none"
-MCPU="apple_a14"
-INSTALL_PREFIX="$DRONE_WORKSPACE/$TARGET"
-SEARCH_PREFIX="/deps/$TARGET"
-
-"$RELEASE_STAGING/bin/zig" build \
- --prefix "$INSTALL_PREFIX" \
- --search-prefix "$SEARCH_PREFIX" \
- -Dstatic-llvm \
- -Drelease \
- -Dstrip \
- -Dtarget="$TARGET" \
- -Dcpu="$MCPU" \
- -Denable-stage1
ci/zinc/configure_git
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-# Make the `zig version` number consistent.
-# This will affect the cmake commands that follow.
-# This is in its own script because git does not support this command
-# being run concurrently with itself.
-git config core.abbrev 9
ci/zinc/drone.yml
@@ -1,96 +0,0 @@
----
-kind: pipeline
-type: docker
-name: x86_64-linux
-platform:
- os: linux
- arch: amd64
-workspace:
- path: /workspace
-
-steps:
-- name: configure_git
- image: ci/debian-amd64:11.1-12
- commands:
- - ./ci/zinc/configure_git
-
-- name: test_stage3_debug
- depends_on:
- - configure_git
- image: ci/debian-amd64:11.1-12
- commands:
- - ./ci/zinc/linux_test_stage3_debug
-
-- name: test_stage3_release
- depends_on:
- - configure_git
- image: ci/debian-amd64:11.1-12
- commands:
- - ./ci/zinc/linux_test_stage3_release
-
-- name: build_aarch64_macos
- depends_on:
- - test_stage3_release
- image: ci/debian-amd64:11.1-12
- commands:
- - ./ci/zinc/build_aarch64_macos
-
-- name: test_determinism
- depends_on:
- - test_stage3_release
- image: ci/debian-amd64:11.1-12
- commands:
- - ./ci/zinc/linux_test_determinism
-
-- name: linux_package
- depends_on:
- - test_stage3_debug
- - test_stage3_release
- - test_determinism
- when:
- branch:
- - master
- event:
- - push
- image: ci/debian-amd64:11.1-12
- environment:
- AWS_ACCESS_KEY_ID:
- from_secret: AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY:
- from_secret: AWS_SECRET_ACCESS_KEY
- commands:
- - ./ci/zinc/linux_package
-
-- name: macos_package
- depends_on:
- - test_stage3_debug
- - build_aarch64_macos
- when:
- branch:
- - master
- event:
- - push
- image: ci/debian-amd64:11.1-12
- environment:
- AWS_ACCESS_KEY_ID:
- from_secret: AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY:
- from_secret: AWS_SECRET_ACCESS_KEY
- commands:
- - ./ci/zinc/macos_package
-
-- name: notify_lavahut
- depends_on:
- - macos_package
- - linux_package
- when:
- branch:
- - master
- event:
- - push
- image: ci/debian-amd64:11.1-12
- environment:
- SRHT_OAUTH_TOKEN:
- from_secret: SRHT_OAUTH_TOKEN
- commands:
- - ./ci/zinc/notify_lavahut
ci/zinc/linux_package
@@ -1,45 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-ARCH="$(uname -m)"
-OS="linux"
-RELEASE_STAGING="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($RELEASE_STAGING/bin/zig version)
-BASENAME="zig-$OS-$ARCH-$VERSION"
-TARBALL="$BASENAME.tar.xz"
-
-# This runs concurrently with the macos_package script, so it should not make
-# any changes to the filesystem that will cause problems for the other script.
-
-cp -r "$RELEASE_STAGING" "$BASENAME"
-
-# Remove the unnecessary bin dir in $prefix/bin/zig
-mv $BASENAME/bin/zig $BASENAME/
-rmdir $BASENAME/bin
-
-# Remove the unnecessary zig dir in $prefix/lib/zig/std/std.zig
-mv $BASENAME/lib/zig $BASENAME/lib2
-rmdir $BASENAME/lib
-mv $BASENAME/lib2 $BASENAME/lib
-
-tar cfJ "$TARBALL" "$BASENAME"
-
-SHASUM=$(sha256sum $TARBALL | cut '-d ' -f1)
-BYTESIZE=$(wc -c < $TARBALL)
-
-MANIFEST="manifest-$TARGET.json"
-touch $MANIFEST
-echo "{\"tarball\": \"$TARBALL\"," >>$MANIFEST
-echo "\"shasum\": \"$SHASUM\"," >>$MANIFEST
-echo "\"size\": \"$BYTESIZE\"}" >>$MANIFEST
-
-# Publish artifact.
-s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
-
-# Publish manifest.
-s3cmd put -P --add-header="cache-control: max-age=0, must-revalidate" "$MANIFEST" "s3://ziglang.org/builds/$ARCH-$OS-$VERSION.json"
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/linux_test_determinism
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-DEPS_LOCAL="/deps/local"
-ZIG_PREFIX="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($ZIG_PREFIX/bin/zig version)
-
-"$ZIG_PREFIX/bin/zig" build \
- --prefix stage4 \
- -Dconfig_h="build-release/config.h" \
- -Denable-llvm \
- -Denable-stage1 \
- -Dno-lib \
- -Drelease \
- -Dstrip \
- -Dtarget=x86_64-linux-musl \
- -Duse-zig-libcxx \
- -Dversion-string="$VERSION"
-
-# diff returns an error code if the files differ.
-echo "If the following command fails, it means nondeterminism has been"
-echo "introduced, making stage3 and stage4 no longer byte-for-byte identical."
-diff "$ZIG_PREFIX/bin/zig" "stage4/bin/zig"
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/linux_test_stage3_release
@@ -1,60 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-ARCH="$(uname -m)"
-DEPS_LOCAL="/deps/local"
-RELEASE_STAGING="$DRONE_WORKSPACE/_release/staging"
-OLD_ZIG="$DEPS_LOCAL/bin/zig"
-TARGET="${ARCH}-linux-musl"
-MCPU="baseline"
-
-export PATH=$DEPS_LOCAL/bin:$PATH
-
-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-release
-cd build-release
-cmake .. \
- -DCMAKE_INSTALL_PREFIX="$RELEASE_STAGING" \
- -DCMAKE_PREFIX_PATH="$DEPS_LOCAL" \
- -DCMAKE_BUILD_TYPE=Release \
- -DZIG_TARGET_TRIPLE="$TARGET" \
- -DZIG_TARGET_MCPU="$MCPU" \
- -DZIG_STATIC=ON \
- -GNinja
-
-# 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
-
-ninja install
-
-"$RELEASE_STAGING/bin/zig" build test docs \
- -fqemu \
- -fwasmtime \
- -Dstatic-llvm \
- -Dtarget=native-native-musl \
- --search-prefix "$DEPS_LOCAL" \
- --zig-lib-dir "$(pwd)/../lib"
-
-# Produce the experimental std lib documentation.
-mkdir -p "$RELEASE_STAGING/doc/std"
-"$RELEASE_STAGING/bin/zig" test ../lib/std/std.zig \
- -femit-docs=$RELEASE_STAGING/doc/std \
- -fno-emit-bin \
- --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
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/macos_package
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-set -x
-set -e
-
-ARCH="aarch64"
-OS=macos
-ZIG_PREFIX="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($ZIG_PREFIX/bin/zig version)
-TARGET="$ARCH-$OS-none"
-INSTALL_PREFIX="$DRONE_WORKSPACE/$TARGET"
-BASENAME="zig-$OS-$ARCH-$VERSION"
-TARBALL="$BASENAME.tar.xz"
-
-# This runs concurrently with the linux_package script, so it should not make
-# any changes to the filesystem that will cause problems for the other script.
-
-# Remove the unnecessary bin dir in $prefix/bin/zig
-mv $INSTALL_PREFIX/bin/zig $INSTALL_PREFIX/
-rmdir $INSTALL_PREFIX/bin
-
-# Remove the unnecessary zig dir in $prefix/lib/zig/std/std.zig
-mv $INSTALL_PREFIX/lib/zig $INSTALL_PREFIX/lib2
-rmdir $INSTALL_PREFIX/lib
-mv $INSTALL_PREFIX/lib2 $INSTALL_PREFIX/lib
-
-cp -r "$ZIG_PREFIX/doc" "$INSTALL_PREFIX/"
-cp "$ZIG_PREFIX/LICENSE" "$INSTALL_PREFIX/"
-
-mv "$INSTALL_PREFIX" "$BASENAME"
-tar cfJ "$TARBALL" "$BASENAME"
-
-SHASUM=$(sha256sum $TARBALL | cut '-d ' -f1)
-BYTESIZE=$(wc -c < $TARBALL)
-
-MANIFEST="manifest-$TARGET.json"
-touch $MANIFEST
-echo "{\"tarball\": \"$TARBALL\"," >>$MANIFEST
-echo "\"shasum\": \"$SHASUM\"," >>$MANIFEST
-echo "\"size\": \"$BYTESIZE\"}" >>$MANIFEST
-
-# Publish artifact.
-s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/
-
-# Publish manifest.
-s3cmd put -P --add-header="cache-control: max-age=0, must-revalidate" "$MANIFEST" "s3://ziglang.org/builds/$ARCH-$OS-$VERSION.json"
-
-# Explicit exit helps show last command duration.
-exit
ci/zinc/notify_lavahut
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set +x # Avoid leaking oauth token.
-set -e
-
-ZIG_PREFIX="$DRONE_WORKSPACE/_release/staging"
-VERSION=$($ZIG_PREFIX/bin/zig version)
-cd $DRONE_WORKSPACE
-./ci/srht/on_master_success "$VERSION" "$SRHT_OAUTH_TOKEN"
ci/index.json
@@ -33,6 +33,11 @@
"tarball": "https://ziglang.org/builds/{{X86_64_LINUX_TARBALL}}",
"shasum": "{{X86_64_LINUX_SHASUM}}",
"size": "{{X86_64_LINUX_BYTESIZE}}"
+ },
+ "aarch64-linux": {
+ "tarball": "https://ziglang.org/builds/{{AARCH64_LINUX_TARBALL}}",
+ "shasum": "{{AARCH64_LINUX_SHASUM}}",
+ "size": "{{AARCH64_LINUX_BYTESIZE}}"
}
},
"0.10.0": {