mirror of
https://github.com/Threnklyn/wg-ui.git
synced 2026-05-19 05:13:30 +02:00
709fb144f1
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
155 lines
4.8 KiB
YAML
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-*"
|