wireguard-ui/.github/workflows/release.yml

68 lines
1.9 KiB
YAML

name: wireguard-ui build release
on:
release:
types: [created]
jobs:
releases-matrix:
name: Release Go Binary
runs-on: ubuntu-latest
strategy:
matrix:
# build and publish in parallel: linux/386, linux/amd64, darwin/386, darwin/amd64
goos: [linux, freebsd, darwin]
goarch: [386, amd64, arm, arm64]
exclude:
- goarch: 386
goos: darwin
- goarch: arm
goos: darwin
- goarch: arm64
goos: darwin
goarm:
- 7
steps:
# get the source code
- uses: actions/checkout@v2
# set environment
- name: Set APP_VERSION env
run: echo "APP_VERSION=$(echo ${GITHUB_REF} | rev | cut -d'/' -f 1 | rev )" >> $GITHUB_ENV
- name: Set BUILD_TIME env
run: echo "BUILD_TIME=$(date)" >> $GITHUB_ENV
- name: Environment Printer
uses: managedkaos/print-env@v1.0
# setup node
- uses: actions/setup-node@v2
with:
node-version: '14'
registry-url: 'https://registry.npmjs.org'
# prepare assets for go rice
- name: Prepare assets
run: |
chmod +x ./prepare_assets.sh
./prepare_assets.sh
# get go rice tool
- name: Get go rice tool
run: go get github.com/GeertJohan/go.rice/rice
# run go rice embed
- name: Run go rice embed
run: ${HOME}/go/bin/rice embed-go
# build and make the releases
- name: Build and make the releases
uses: wangyoucao577/go-release-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
goos: ${{ matrix.goos }}
goarch: ${{ matrix.goarch }}
goversion: "https://dl.google.com/go/go1.16.1.linux-amd64.tar.gz"
binary_name: "wireguard-ui"
build_flags: -v
ldflags: -X "main.appVersion=${{ env.APP_VERSION }}" -X "main.buildTime=${{ env.BUILD_TIME }}" -X main.gitCommit=${{ github.sha }} -X main.gitRef=${{ github.ref }}