From 03f67a54fe51912ab59be84d2c92f6e6ac1a3eb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Viitam=C3=A4ki?= Date: Tue, 5 May 2020 16:46:44 +0200 Subject: [PATCH] actions workflow for releases (#68) * actions workflow for releases Adding actions workflow for building releases * change BOT_TOKEN to GITHUB_TOKEN --- .github/workflows/push_master.yaml | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/.github/workflows/push_master.yaml b/.github/workflows/push_master.yaml index 80940a5..fcc03f8 100644 --- a/.github/workflows/push_master.yaml +++ b/.github/workflows/push_master.yaml @@ -28,3 +28,104 @@ jobs: run: | buildah bud --format=docker --layers -t embarkstudios/wireguard-ui:latest -t embarkstudios/wireguard-ui:$GITHUB_SHA -f Dockerfile . buildah push --creds $DOCKER_USERNAME:$DOCKER_PASSWORD --format=v2s2 embarkstudios/wireguard-ui + + release: + name: Release + needs: build + if: startsWith(github.ref, 'refs/tags/') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - name: Setup NodeJS + uses: actions/setup-node@v1 + with: + node-verison: '12.x' + + - name: npm install & build + run: | + npm install --prefix ui + npm run --prefix ui build + + - name: Setup Go + uses: actions/setup-go@v2 + with: + go-version: '1.14' + + - name: Fetch Go dependencies + run: | + go get -u github.com/go-bindata/go-bindata/... + go get github.com/elazarl/go-bindata-assetfs/... + go-bindata-assetfs -prefix ui/dist ui/dist + + - name: Build wg-ui for Linux (AMD64) + run: | + go build -o "$release_name" + name=wg-ui + tag=$(git describe --tags --abbrev=0) + target=linux-amd64 + release_name="$name-$tag-$target" + release_tar="$release_name.tar.gz" + tar czvf "$release_tar" "$release_name" + echo -n "$(shasum -ba 256 "${release_tar}" | cut -d " " -f 1)" > "${release_tar}.sha256" + rm "$release_name" + + - name: Build wg-ui for Linux (ARMv5) + run: | + env GOOS=linux GOARCH=arm GOARM=5 go build -o "$release_name" + name=wg-ui + tag=$(git describe --tags --abbrev=0) + target=linux-armv5 + release_name="$name-$tag-$target" + release_tar="$release_name.tar.gz" + tar czvf "$release_tar" "$release_name" + echo -n "$(shasum -ba 256 "${release_tar}" | cut -d " " -f 1)" > "${release_tar}.sha256" + rm "$release_name" + + - name: Build wg-ui for Linux (ARMv6) + run: | + env GOOS=linux GOARCH=arm GOARM=6 go build -o "$release_name" + name=wg-ui + tag=$(git describe --tags --abbrev=0) + target=linux-armv6 + release_name="$name-$tag-$target" + release_tar="$release_name.tar.gz" + tar czvf "$release_tar" "$release_name" + echo -n "$(shasum -ba 256 "${release_tar}" | cut -d " " -f 1)" > "${release_tar}.sha256" + rm "$release_name" + + - name: Build wg-ui for Linux (ARMv7) + run: | + env GOOS=linux GOARCH=arm GOARM=7 go build -o "$release_name" + name=wg-ui + tag=$(git describe --tags --abbrev=0) + target=linux-armv7 + release_name="$name-$tag-$target" + release_tar="$release_name.tar.gz" + tar czvf "$release_tar" "$release_name" + echo -n "$(shasum -ba 256 "${release_tar}" | cut -d " " -f 1)" > "${release_tar}.sha256" + rm "$release_name" + + - name: Install buildah + run: | + sudo apt-get install -qq -y software-properties-common + sudo add-apt-repository -y ppa:projectatomic/ppa + sudo apt-get update -qq + sudo apt-get -qq -y install buildah + + - name: Build & push wg-ui Docker image + env: + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + run: | + tag=$(git describe --tags --abbrev=0) + buildah bud --format=docker --layers -t embarkstudios/wireguard-ui:$tag -t embarkstudios/wireguard-ui:$GITHUB_SHA -f Dockerfile . + buildah push --creds $DOCKER_USERNAME:$DOCKER_PASSWORD --format=v2s2 embarkstudios/wireguard-ui + + - name: Publish release + uses: softprops/action-gh-release@v1 + with: + draft: true + files: "wg-ui*" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}