authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-03-06 15:56:39 -08:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2022-03-06 15:56:39 -08:00
log410c2e98a2c986885ce7677160b7212db69d223e
tree862c8b762999de67b3d03a81fa78eae0e771cfab
parent3f059428d1d3239766d57d7b18d31d71f3f1785b

replace circleci with github actions


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/
3version: 2.1
4jobs:
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 @@
1name: CI
2
3on:
4 push:
5 branches: [master]
6
7jobs:
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
1zig-*
2.zigmod
3bin
build_all_zig.sh+1-7
......@@ -2,10 +2,6 @@
22
33set -e
44
5date=$(date +'%Y%m%d')
6version=${CIRCLE_BUILD_NUM-$date}
7tag=v$version.$(git log --format=%h -1)
8
95targets="
106aarch64-linux-musl
117aarch64-macos-gnu
......@@ -18,7 +14,5 @@ x86_64-windows-gnu
1814
1915for item in $targets
2016do
21 echo "$tag-$item"
22 zig build -Dtarget=$item -Duse-full-name -Dtag=$tag
23 echo
17 ./build_release.sh $item
2418done
build_release.sh created+13
......@@ -0,0 +1,13 @@
1#!/usr/bin/env bash
2
3set -e
4
5tag="r$(./release_num.sh)"
6rev=$(git log --format=%h -1)
7
8target=$1
9
10# TODO error if $target is empty
11
12echo "$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
3set -x
4set -e
5
6os="linux"
7arch="x86_64"
8version="$1"
9
10dir="zig-$os-$arch-$version"
11file="$dir.tar.xz"
12
13cd /
14
15if [[ $1 == *"dev"* ]]; then
16 wget https://ziglang.org/builds/$file
17else
18 wget https://ziglang.org/download/$version/$file
19fi
20
21tar -xf $file
22ln -s /$dir/zig /usr/local/bin
make_release.sh+8-6
......@@ -2,18 +2,20 @@
22
33set -e
44
5date=$(date +'%Y.%m.%d')
6version=${CIRCLE_BUILD_NUM-$date}
7tag=v$version
5tag=r$(./release_num.sh)
6
7GITHUB_TOKEN="$1"
8PROJECT_USERNAME=$(echo $GITHUB_REPOSITORY | cut -d'/' -f1)
9PROJECT_REPONAME=$(echo $GITHUB_REPOSITORY | cut -d'/' -f2)
810
911# ghr uses Zigmod to build itself, so we need to use the binary to build Zigmod
1012curl -s https://api.github.com/repos/nektro/ghr-zig/releases | jq -r '.[0].assets[].browser_download_url' | grep $(uname -m) | grep linux | wget -i -
1113chmod +x ./ghr-linux-x86_64
1214./ghr-linux-x86_64 \
1315 -t ${GITHUB_TOKEN} \
14 -u ${CIRCLE_PROJECT_USERNAME} \
15 -r ${CIRCLE_PROJECT_REPONAME} \
16 -u ${PROJECT_USERNAME} \
17 -r ${PROJECT_REPONAME} \
1618 -b "$(./changelog.sh)" \
1719 -n "$tag" \
1820 "$tag" \
19 "/artifacts/"
21 "./bin/"
release_num.sh created+8
......@@ -0,0 +1,8 @@
1#!/usr/bin/env bash
2
3set -e
4
5tagcount=$(git tag | wc -l)
6tagcount=$((tagcount+1))
7
8echo $tagcount