diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index a50d2a3f1a598a4cfeb731763ed5304c76c95b11..0000000000000000000000000000000000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,31 +0,0 @@ -# Golang CircleCI 2.0 configuration file -# See https://circleci.com/docs/2.0/language-go/ -version: 2.1 -jobs: - build: - working_directory: /home/circleci/zigmod - docker: - - image: golang - environment: - DEBIAN_FRONTEND: noninteractive - steps: - - run: apt update - - run: apt -y upgrade - - checkout - - run: git submodule update --init --recursive - - - run: apt -y install xz-utils jq - - run: ./download_zig.sh 0.10.0-dev.531+3eb8d01f5 - - run: zig version - - run: zig env - - run: zig build -Dbootstrap - - run: ./zig-out/bin/zigmod ci - - run: zig build - - run: ./build_all_zig.sh - - store_artifacts: - path: ./zig-out/bin/ - destination: /artifacts/ - - - run: mkdir -p /artifacts/ - - run: cp -R ./zig-out/bin/. /artifacts/ - - run: ./make_release.sh diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml new file mode 100644 index 0000000000000000000000000000000000000000..c0e88aa018027b4ba3dbb0f0d7fa75939dc3ca27 --- /dev/null +++ b/.github/workflows/push.yml @@ -0,0 +1,42 @@ +name: CI + +on: + push: + branches: [master] + +jobs: + release: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + submodules: "recursive" + - run: git fetch --all --tags + - run: top -b -n 1 | head -n5 + + - name: Setup Zig + uses: goto-bus-stop/setup-zig@v1 + with: + version: "0.10.0-dev.531+3eb8d01f5" + + - run: zig version + - run: zig env + - run: zig build -Dbootstrap + - run: ./zig-out/bin/zigmod ci + - run: cat deps.zig + - run: zig build + + # Build All + - run: ./build_release.sh aarch64-linux-musl + - run: ./build_release.sh aarch64-macos-gnu + - run: ./build_release.sh aarch64-windows-gnu + - run: ./build_release.sh i386-linux-musl + - run: ./build_release.sh x86_64-linux-musl + - run: ./build_release.sh x86_64-macos-gnu + - run: ./build_release.sh x86_64-windows-gnu + + # Github Release + - run: ./changelog.sh + - run: ./make_release.sh ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 0f1d5081ee8e6649272f32c4c54bbe5c223dc2d3..f1b7c4e6ccaeae31245f3b0983be130f81f115f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ -/zig-* -/.zigmod +zig-* +.zigmod +bin diff --git a/build_all_zig.sh b/build_all_zig.sh index 10fb33b0650e751de69aa92d0d02ce42cfb6984a..1e6ed6edac1bc862590cbda4ee233f0f97105d42 100755 --- a/build_all_zig.sh +++ b/build_all_zig.sh @@ -2,10 +2,6 @@ set -e -date=$(date +'%Y%m%d') -version=${CIRCLE_BUILD_NUM-$date} -tag=v$version.$(git log --format=%h -1) - targets=" aarch64-linux-musl aarch64-macos-gnu @@ -18,7 +14,5 @@ x86_64-windows-gnu for item in $targets do - echo "$tag-$item" - zig build -Dtarget=$item -Duse-full-name -Dtag=$tag - echo + ./build_release.sh $item done diff --git a/build_release.sh b/build_release.sh new file mode 100755 index 0000000000000000000000000000000000000000..809934a334095bc974889950c3f969cb11b31157 --- /dev/null +++ b/build_release.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -e + +tag="r$(./release_num.sh)" +rev=$(git log --format=%h -1) + +target=$1 + +# TODO error if $target is empty + +echo "$tag.$rev $target" +$(which time) zig build -Dtarget=$target -Duse-full-name -Dtag=$tag -Drelease --prefix . diff --git a/download_zig.sh b/download_zig.sh deleted file mode 100755 index cfe4525d4e1dcb52e4550d99fb497e7b8556f58b..0000000000000000000000000000000000000000 --- a/download_zig.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -set -x -set -e - -os="linux" -arch="x86_64" -version="$1" - -dir="zig-$os-$arch-$version" -file="$dir.tar.xz" - -cd / - -if [[ $1 == *"dev"* ]]; then - wget https://ziglang.org/builds/$file -else - wget https://ziglang.org/download/$version/$file -fi - -tar -xf $file -ln -s /$dir/zig /usr/local/bin diff --git a/make_release.sh b/make_release.sh index 272eb29edc783088a20aea0185dc3d6f6abb6f3a..162f00f0f2ad3ccce9dd99b80f5d18da081b8f88 100755 --- a/make_release.sh +++ b/make_release.sh @@ -2,18 +2,20 @@ set -e -date=$(date +'%Y.%m.%d') -version=${CIRCLE_BUILD_NUM-$date} -tag=v$version +tag=r$(./release_num.sh) + +GITHUB_TOKEN="$1" +PROJECT_USERNAME=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1) +PROJECT_REPONAME=$(echo $GITHUB_REPOSITORY | cut -d'/' -f2) # ghr uses Zigmod to build itself, so we need to use the binary to build Zigmod 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 - chmod +x ./ghr-linux-x86_64 ./ghr-linux-x86_64 \ -t ${GITHUB_TOKEN} \ - -u ${CIRCLE_PROJECT_USERNAME} \ - -r ${CIRCLE_PROJECT_REPONAME} \ + -u ${PROJECT_USERNAME} \ + -r ${PROJECT_REPONAME} \ -b "$(./changelog.sh)" \ -n "$tag" \ "$tag" \ - "/artifacts/" + "./bin/" diff --git a/release_num.sh b/release_num.sh new file mode 100755 index 0000000000000000000000000000000000000000..81b114bd65ccebd2449b2d4956545a9a371f53b4 --- /dev/null +++ b/release_num.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e + +tagcount=$(git tag | wc -l) +tagcount=$((tagcount+1)) + +echo $tagcount