name: wireguard-ui build release on: release: types: [created] jobs: releases-matrix: name: Release Go Binary runs-on: ubuntu-22.04 strategy: fail-fast: false 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@v4 # 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@v4 with: node-version: '20' registry-url: 'https://registry.npmjs.org' # prepare assets - name: Prepare assets run: | chmod +x ./prepare_assets.sh ./prepare_assets.sh # 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.21.5.linux-amd64.tar.gz" pre_command: export CGO_ENABLED=0 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 }}