| author | |
| committer | |
| log | 410c2e98a2c986885ce7677160b7212db69d223e |
| tree | 862c8b762999de67b3d03a81fa78eae0e771cfab |
| parent | 3f059428d1d3239766d57d7b18d31d71f3f1785b |
8 files changed, 75 insertions(+), 68 deletions(-)
.circleci/config.yml deleted-31| ... | ... | @@ -1,31 +0,0 @@ |
| 1 | # Golang CircleCI 2.0 configuration file | |
| 2 | # See https://circleci.com/docs/2.0/language-go/ | |
| 3 | version: 2.1 | |
| 4 | jobs: | |
| 5 | build: | |
| 6 | working_directory: /home/circleci/zigmod | |
| 7 | docker: | |
| 8 | - image: golang | |
| 9 | environment: | |
| 10 | DEBIAN_FRONTEND: noninteractive | |
| 11 | steps: | |
| 12 | - run: apt update | |
| 13 | - run: apt -y upgrade | |
| 14 | - checkout | |
| 15 | - run: git submodule update --init --recursive | |
| 16 | ||
| 17 | - run: apt -y install xz-utils jq | |
| 18 | - run: ./download_zig.sh 0.10.0-dev.531+3eb8d01f5 | |
| 19 | - run: zig version | |
| 20 | - run: zig env | |
| 21 | - run: zig build -Dbootstrap | |
| 22 | - run: ./zig-out/bin/zigmod ci | |
| 23 | - run: zig build | |
| 24 | - run: ./build_all_zig.sh | |
| 25 | - store_artifacts: | |
| 26 | path: ./zig-out/bin/ | |
| 27 | destination: /artifacts/ | |
| 28 | ||
| 29 | - run: mkdir -p /artifacts/ | |
| 30 | - run: cp -R ./zig-out/bin/. /artifacts/ | |
| 31 | - run: ./make_release.sh |
.github/workflows/push.yml created+42| ... | ... | @@ -0,0 +1,42 @@ |
| 1 | name: CI | |
| 2 | ||
| 3 | on: | |
| 4 | push: | |
| 5 | branches: [master] | |
| 6 | ||
| 7 | jobs: | |
| 8 | release: | |
| 9 | runs-on: ubuntu-latest | |
| 10 | ||
| 11 | steps: | |
| 12 | - uses: actions/checkout@v2 | |
| 13 | with: | |
| 14 | fetch-depth: 0 | |
| 15 | submodules: "recursive" | |
| 16 | - run: git fetch --all --tags | |
| 17 | - run: top -b -n 1 | head -n5 | |
| 18 | ||
| 19 | - name: Setup Zig | |
| 20 | uses: goto-bus-stop/setup-zig@v1 | |
| 21 | with: | |
| 22 | version: "0.10.0-dev.531+3eb8d01f5" | |
| 23 | ||
| 24 | - run: zig version | |
| 25 | - run: zig env | |
| 26 | - run: zig build -Dbootstrap | |
| 27 | - run: ./zig-out/bin/zigmod ci | |
| 28 | - run: cat deps.zig | |
| 29 | - run: zig build | |
| 30 | ||
| 31 | # Build All | |
| 32 | - run: ./build_release.sh aarch64-linux-musl | |
| 33 | - run: ./build_release.sh aarch64-macos-gnu | |
| 34 | - run: ./build_release.sh aarch64-windows-gnu | |
| 35 | - run: ./build_release.sh i386-linux-musl | |
| 36 | - run: ./build_release.sh x86_64-linux-musl | |
| 37 | - run: ./build_release.sh x86_64-macos-gnu | |
| 38 | - run: ./build_release.sh x86_64-windows-gnu | |
| 39 | ||
| 40 | # Github Release | |
| 41 | - run: ./changelog.sh | |
| 42 | - run: ./make_release.sh ${{ secrets.GITHUB_TOKEN }} |
.gitignore+3-2| ... | ... | @@ -1,2 +1,3 @@ |
| 1 | /zig-* | |
| 2 | /.zigmod | |
| 1 | zig-* | |
| 2 | .zigmod | |
| 3 | bin |
build_all_zig.sh+1-7| ... | ... | @@ -2,10 +2,6 @@ |
| 2 | 2 | |
| 3 | 3 | set -e |
| 4 | 4 | |
| 5 | date=$(date +'%Y%m%d') | |
| 6 | version=${CIRCLE_BUILD_NUM-$date} | |
| 7 | tag=v$version.$(git log --format=%h -1) | |
| 8 | ||
| 9 | 5 | targets=" |
| 10 | 6 | aarch64-linux-musl |
| 11 | 7 | aarch64-macos-gnu |
| ... | ... | @@ -18,7 +14,5 @@ x86_64-windows-gnu |
| 18 | 14 | |
| 19 | 15 | for item in $targets |
| 20 | 16 | do |
| 21 | echo "$tag-$item" | |
| 22 | zig build -Dtarget=$item -Duse-full-name -Dtag=$tag | |
| 23 | echo | |
| 17 | ./build_release.sh $item | |
| 24 | 18 | done |
build_release.sh created+13| ... | ... | @@ -0,0 +1,13 @@ |
| 1 | #!/usr/bin/env bash | |
| 2 | ||
| 3 | set -e | |
| 4 | ||
| 5 | tag="r$(./release_num.sh)" | |
| 6 | rev=$(git log --format=%h -1) | |
| 7 | ||
| 8 | target=$1 | |
| 9 | ||
| 10 | # TODO error if $target is empty | |
| 11 | ||
| 12 | echo "$tag.$rev $target" | |
| 13 | $(which time) zig build -Dtarget=$target -Duse-full-name -Dtag=$tag -Drelease --prefix . |
download_zig.sh deleted-22| ... | ... | @@ -1,22 +0,0 @@ |
| 1 | #!/usr/bin/env bash | |
| 2 | ||
| 3 | set -x | |
| 4 | set -e | |
| 5 | ||
| 6 | os="linux" | |
| 7 | arch="x86_64" | |
| 8 | version="$1" | |
| 9 | ||
| 10 | dir="zig-$os-$arch-$version" | |
| 11 | file="$dir.tar.xz" | |
| 12 | ||
| 13 | cd / | |
| 14 | ||
| 15 | if [[ $1 == *"dev"* ]]; then | |
| 16 | wget https://ziglang.org/builds/$file | |
| 17 | else | |
| 18 | wget https://ziglang.org/download/$version/$file | |
| 19 | fi | |
| 20 | ||
| 21 | tar -xf $file | |
| 22 | ln -s /$dir/zig /usr/local/bin |
make_release.sh+8-6| ... | ... | @@ -2,18 +2,20 @@ |
| 2 | 2 | |
| 3 | 3 | set -e |
| 4 | 4 | |
| 5 | date=$(date +'%Y.%m.%d') | |
| 6 | version=${CIRCLE_BUILD_NUM-$date} | |
| 7 | tag=v$version | |
| 5 | tag=r$(./release_num.sh) | |
| 6 | ||
| 7 | GITHUB_TOKEN="$1" | |
| 8 | PROJECT_USERNAME=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1) | |
| 9 | PROJECT_REPONAME=$(echo $GITHUB_REPOSITORY | cut -d'/' -f2) | |
| 8 | 10 | |
| 9 | 11 | # ghr uses Zigmod to build itself, so we need to use the binary to build Zigmod |
| 10 | 12 | curl -s https://api.github.com/repos/nektro/ghr-zig/releases | jq -r '.[0].assets[].browser_download_url' | grep $(uname -m) | grep linux | wget -i - |
| 11 | 13 | chmod +x ./ghr-linux-x86_64 |
| 12 | 14 | ./ghr-linux-x86_64 \ |
| 13 | 15 | -t ${GITHUB_TOKEN} \ |
| 14 | -u ${CIRCLE_PROJECT_USERNAME} \ | |
| 15 | -r ${CIRCLE_PROJECT_REPONAME} \ | |
| 16 | -u ${PROJECT_USERNAME} \ | |
| 17 | -r ${PROJECT_REPONAME} \ | |
| 16 | 18 | -b "$(./changelog.sh)" \ |
| 17 | 19 | -n "$tag" \ |
| 18 | 20 | "$tag" \ |
| 19 | "/artifacts/" | |
| 21 | "./bin/" |
release_num.sh created+8| ... | ... | @@ -0,0 +1,8 @@ |
| 1 | #!/usr/bin/env bash | |
| 2 | ||
| 3 | set -e | |
| 4 | ||
| 5 | tagcount=$(git tag | wc -l) | |
| 6 | tagcount=$((tagcount+1)) | |
| 7 | ||
| 8 | echo $tagcount |