name: Release on: release: types: [published] permissions: contents: write packages: write jobs: releases-matrix: name: Release Go Binary runs-on: ubuntu-latest strategy: matrix: goos: [linux] goarch: ["386", amd64, arm64] steps: - uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: "1.22" - name: Setup Node uses: actions/setup-node@v4 with: node-version: "22" cache: npm cache-dependency-path: web/frontend/package-lock.json - name: Build web UI run: npm ci && npm run build working-directory: web/frontend - name: Build env: GOOS: ${{ matrix.goos }} GOARCH: ${{ matrix.goarch }} CGO_ENABLED: 0 run: | mkdir -p build go build -o build/OpenGFW-${GOOS}-${GOARCH} \ -ldflags "-s -w -X github.com/apernet/OpenGFW/cmd.appVersion=${GITHUB_REF_NAME} -X github.com/apernet/OpenGFW/cmd.appCommit=${GITHUB_SHA::7}" . - name: Upload uses: softprops/action-gh-release@v2 with: files: build/*