Files
wg-ui/.github/workflows/release.yaml
T
Markus Viitamäki 709fb144f1 CI Overhaul (#83)
Multiple changes made to the CI workflow.

Docker images are now built for AMD64, ARM64 and ARMv7
Docker images are now built for each release and published on docker hub
Release workflow now successfully create release and upload assets
Added ARM64 to list of binaries compiled during release
2020-07-22 16:33:37 +02:00

155 lines
4.8 KiB
YAML

name: Release
on:
push:
branches:
- master
tags:
- v*
jobs:
release-docker:
name: Docker
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Prepare
id: prepare
run: |
DOCKER_IMAGE=embarkstudios/wireguard-ui
DOCKER_PLATFORMS=linux/amd64,linux/arm64,linux/arm/v7
VERSION=${GITHUB_REF#refs/tags/v}
TAGS="--tag ${DOCKER_IMAGE}:${VERSION}"
echo ::set-output name=docker_image::${DOCKER_IMAGE}
echo ::set-output name=version::${VERSION}
echo ::set-output name=buildx_args::--platform ${DOCKER_PLATFORMS} \
--build-arg VERSION=${VERSION} \
${TAGS} --file Dockerfile .
-
name: Set up Docker Buildx
uses: crazy-max/ghaction-docker-buildx@master
-
name: Docker Buildx (build)
run: |
docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }}
-
name: Docker Login
if: success()
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
echo "${DOCKER_PASSWORD}" | docker login --username "${DOCKER_USERNAME}" --password-stdin
-
name: Docker Buildx (push)
if: success()
run: |
docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }}
-
name: Docker Check Manifest
if: always()
run: |
docker run --rm mplatform/mquery ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}
-
name: Clear
if: always()
run: |
rm -f ${HOME}/.docker/config.json
release-binary:
name: Binary
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- name: Setup NodeJS
uses: actions/setup-node@v1
with:
node-verison: '12.x'
- name: npm install & build
run: |
make ui
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: '1.14'
- name: Insert assets into go
run: |
make assets
- name: Build wg-ui for Linux (AMD64)
run: |
name=wg-ui
target=linux-amd64
release_name="$name-${GITHUB_REF#refs/tags/v}-$target"
release_tar="$release_name.tar.gz"
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "$release_name"
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: |
name=wg-ui
target=linux-armv5
release_name="$name-${GITHUB_REF#refs/tags/v}-$target"
release_tar="$release_name.tar.gz"
env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -o "$release_name"
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: |
name=wg-ui
target=linux-armv6
release_name="$name-${GITHUB_REF#refs/tags/v}-$target"
release_tar="$release_name.tar.gz"
env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -o "$release_name"
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: |
name=wg-ui
target=linux-armv7
release_name="$name-${GITHUB_REF#refs/tags/v}-$target"
release_tar="$release_name.tar.gz"
env CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -o "$release_name"
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 (ARM64)
run: |
name=wg-ui
target=linux-arm64
release_name="$name-${GITHUB_REF#refs/tags/v}-$target"
release_tar="$release_name.tar.gz"
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -o "$release_name"
tar czvf "$release_tar" "$release_name"
echo -n "$(shasum -ba 256 "${release_tar}" | cut -d " " -f 1)" > "${release_tar}.sha256"
rm "$release_name"
- name: List content
run: |
ls -lah wg-ui*
- name: GitHub Release
uses: softprops/action-gh-release@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
draft: true
files: "wg-ui-*"