Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/allan-nava/go-release.action

Automate publishing Go build artifacts for GitHub releases through GitHub Actions
https://github.com/allan-nava/go-release.action

actions github github-actions go go-library golang

Last synced: 20 days ago
JSON representation

Automate publishing Go build artifacts for GitHub releases through GitHub Actions

Awesome Lists containing this project

README

        

# Go Release Binary GitHub Action V2

Automate publishing Go build artifacts for GitHub releases through GitHub Actions.

Detects a build.sh in the go repo and will use that instead. Expects a list of
file artifacts in a single, space delimited line as output for packaging.

Extra environment variables:
* CMD_PATH
* Pass extra commands to go build
* EXTRA_FILES
* Pass a list of extra files for packaging.
* Example: EXTRA_FILES: "README.md LICENSE"

```yaml
# .github/workflows/release.yaml

on: release
name: Build Release
jobs:
release-linux-386:
name: release linux/386
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@master
- name: compile and release
uses: Allan-Nava/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOARCH: "386"
GOOS: linux
EXTRA_FILES: "LICENSE"
#CMD_PATH: "cmd/main.go" for example
#
release-linux-amd64:
name: release linux/amd64
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@master
- name: compile and release
uses: Allan-Nava/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOARCH: amd64
GOOS: linux
EXTRA_FILES: "LICENSE"
#CMD_PATH: "cmd/main.go" for example
#
release-linux-arm:
name: release linux/386
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@master
- name: compile and release
uses: Allan-Nava/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOARCH: "arm"
GOOS: linux
EXTRA_FILES: "LICENSE"
#CMD_PATH: "cmd/main.go" for example
#
release-linux-arm64:
name: release linux/amd64
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@master
- name: compile and release
uses: Allan-Nava/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOARCH: arm64
GOOS: linux
EXTRA_FILES: "LICENSE"
#CMD_PATH: "cmd/main.go" for example
#
release-darwin-amd64:
name: release darwin/amd64
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@master
- name: compile and release
uses: Allan-Nava/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOARCH: amd64
GOOS: darwin
EXTRA_FILES: "LICENSE"
#CMD_PATH: "cmd/main.go" for example
#
release-windows-386:
name: release windows/386
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@master
- name: compile and release
uses: Allan-Nava/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOARCH: "386"
GOOS: windows
EXTRA_FILES: "LICENSE"
#CMD_PATH: "cmd/main.go" for example
#
release-windows-amd64:
name: release windows/amd64
runs-on: ubuntu-latest
permissions: write-all
steps:
- uses: actions/checkout@master
- name: compile and release
uses: Allan-Nava/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GOARCH: amd64
GOOS: windows
EXTRA_FILES: "LICENSE"
#CMD_PATH: "cmd/main.go" for example
```