Merge pull request #921 from MichaelMure/release-workflow

Michael Muré created

GHA: add a release workflow to build and upload binaries

Change summary

.github/workflows/release.yml | 41 +++++++++++++++++++++++++++++++++++++
Makefile                      |  2 
2 files changed, 42 insertions(+), 1 deletion(-)

Detailed changes

.github/workflows/release.yml 🔗

@@ -0,0 +1,41 @@
+name: Build release binaries
+
+on:
+  workflow_dispatch:
+  push:
+    tags:
+      - "v*"
+
+jobs:
+  build-release:
+    runs-on: "ubuntu-latest"
+
+    steps:
+      - name: Set up Go
+        uses: actions/setup-go@v2
+        with:
+          go-version: 1.18.x
+
+      - name: Check out code
+        uses: actions/checkout@v2
+
+      - name: Build
+        run: make
+
+      - name: Setup minimal git config
+        run: |
+          git config --global user.email "action@github.com"
+          git config --global user.name "GitHub Action"
+
+      - name: Test
+        run: make test
+
+      - name: Build binaries
+        run: make releases
+
+      - uses: "marvinpinto/action-automatic-releases@latest"
+        with:
+          repo_token: "${{ secrets.GITHUB_TOKEN }}"
+          draft: true
+          prerelease: false
+          files: dist/*

Makefile 🔗

@@ -33,7 +33,7 @@ install:
 .PHONY: releases
 releases:
 	go generate
-	gox -ldflags "$(LDFLAGS)" -output "dist/{{.Dir}}_{{.OS}}_{{.Arch}}"
+	go run github.com/mitchellh/gox@v1.0.1 -ldflags "$(LDFLAGS)" -output "dist/{{.Dir}}_{{.OS}}_{{.Arch}}"
 
 secure: secure-practices secure-vulnerabilities