github actions + goreleaser to build and publish binaries (#1623)

* initial github action to build github hosted binary artifact releases

* consistent with Makefile

* fix syntax error

* add GOPROXY env var

* reintroduce VERSION to env and go build.version

* barf, typo

* set build.version to the tag

Co-authored-by: Aaron Schlesinger <70865+arschles@users.noreply.github.com>
This commit is contained in:
arothste-blk
2020-09-11 18:30:10 -04:00
committed by GitHub
parent 23672f78c9
commit b121e84dcd
3 changed files with 60 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
---
name: publish github release artifacts with goreleaser
on:
push:
tags: '*'
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v2
- name: unshallow
run: git fetch --prune --unshallow
- name: setup-go
uses: actions/setup-go@v2
with:
go-version: 1.14
- name: capture current date
id: date
run: echo "::set-output name=date::$(date -u '+%Y-%m-%d-%H:%M:%S-%Z')"
- name: goreleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
DATE: ${{ steps.date.outputs.date }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+3
View File
@@ -32,3 +32,6 @@ tmp
# prod config file
config.toml
# goreleaser output directory
dist/
+29
View File
@@ -0,0 +1,29 @@
before:
hooks:
- go mod download
env:
- CGO_ENABLED=0
- GOPROXY=https://proxy.golang.org
project_name: athens
builds:
- id: builds
goos:
- linux
- darwin
goarch:
- amd64
main: cmd/proxy/main.go
binary: athens
ldflags:
- -X "github.com/gomods/athens/pkg/build.version={{ .Tag }}"
- -X "github.com/gomods/athens/pkg/build.buildDate={{ .Env.DATE }}"
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ .Tag }}-next"
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'