Browse Source
* chore: ci: preliminary CD support * chore: ci: split release process into its own workflow * chore: ci: cleanup the ci.yml and .goreleaser.yml * chore: ci: unshallowify the clone before searching for the closes tag * chore: tidy up goreleaser config & the release githubaction * chore: add --no-tty to gpg args * chore: more gpg args * chore: try with default gpg args by goreleaser * chore: gpg... * chore: set GPG_TTY * chore: preset gpg conf * Apply suggestions from code review chore: tidy up the .goreleaser.yml Co-Authored-By: Dave Henderson <dhenderson@gmail.com> * chore: gpg debugging * chore: set and export the tty for gpg * chore: gpg.. * chore: use the exact same line from goreleaser-action README for singing * chore: remove signing stanzas from ymls * chore: clean up the release action for final submission * quote the arguments of echo Co-Authored-By: Francis Lavoie <lavofr@gmail.com> Co-authored-by: Dave Henderson <dhenderson@gmail.com> Co-authored-by: Francis Lavoie <lavofr@gmail.com>master
Mohammed Al Sahaf
5 years ago
committed by
GitHub
3 changed files with 124 additions and 0 deletions
@ -0,0 +1,53 @@ |
|||||
|
name: Release |
||||
|
|
||||
|
on: |
||||
|
push: |
||||
|
tags: |
||||
|
- 'v*.*.*' |
||||
|
|
||||
|
jobs: |
||||
|
release: |
||||
|
name: Release |
||||
|
strategy: |
||||
|
matrix: |
||||
|
os: [ ubuntu-latest ] |
||||
|
go-version: [ 1.14.x ] |
||||
|
runs-on: ${{ matrix.os }} |
||||
|
|
||||
|
steps: |
||||
|
- name: Install Go |
||||
|
uses: actions/setup-go@v1 |
||||
|
with: |
||||
|
go-version: ${{ matrix.go-version }} |
||||
|
|
||||
|
- name: Checkout code |
||||
|
uses: actions/checkout@v2 |
||||
|
|
||||
|
# So GoReleaser can generate the changelog properly |
||||
|
- name: Unshallowify the repo clone |
||||
|
run: git fetch --prune --unshallow |
||||
|
|
||||
|
- name: Print Go version and environment |
||||
|
id: vars |
||||
|
run: | |
||||
|
printf "Using go at: $(which go)\n" |
||||
|
printf "Go version: $(go version)\n" |
||||
|
printf "\n\nGo environment:\n\n" |
||||
|
go env |
||||
|
printf "\n\nSystem environment:\n\n" |
||||
|
env |
||||
|
|
||||
|
# https://github.community/t5/GitHub-Actions/How-to-get-just-the-tag-name/m-p/32167/highlight/true#M1027 |
||||
|
- name: Get the version |
||||
|
id: get_version |
||||
|
run: echo "::set-output name=version_tag::${GITHUB_REF/refs\/tags\//}" |
||||
|
|
||||
|
# GoReleaser will take care of publishing those artifacts into the release |
||||
|
- name: Run GoReleaser |
||||
|
uses: goreleaser/goreleaser-action@v1 |
||||
|
with: |
||||
|
version: latest |
||||
|
args: release --rm-dist |
||||
|
env: |
||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
||||
|
TAG: ${{ steps.vars.outputs.version_tag }} |
@ -0,0 +1,66 @@ |
|||||
|
before: |
||||
|
hooks: |
||||
|
- mkdir -p caddy-build |
||||
|
- cp cmd/caddy/main.go caddy-build/main.go |
||||
|
- cp ./go.mod caddy-build/go.mod |
||||
|
- sed -i.bkp s/github.com\/caddyserver\/caddy\/v2/caddy/g ./caddy-build/go.mod |
||||
|
# GoReleaser doesn't seem to offer {{.Tag}} at this stage, so we have to embed it into the env |
||||
|
# so we run: TAG=$(git describe --abbrev=0) goreleaser release --rm-dist --skip-publish --skip-validate |
||||
|
- go mod edit -require=github.com/caddyserver/caddy/v2@{{.Env.TAG}} ./caddy-build/go.mod |
||||
|
- git clone --depth 1 https://github.com/caddyserver/dist caddy-dist |
||||
|
- go mod download |
||||
|
builds: |
||||
|
- env: |
||||
|
- CGO_ENABLED=0 |
||||
|
- GO111MODULE=on |
||||
|
main: main.go |
||||
|
dir: ./caddy-build |
||||
|
binary: caddy |
||||
|
goos: |
||||
|
- darwin |
||||
|
- linux |
||||
|
- windows |
||||
|
- freebsd |
||||
|
goarch: |
||||
|
- amd64 |
||||
|
- 386 |
||||
|
- arm |
||||
|
- arm64 |
||||
|
goarm: |
||||
|
- 6 |
||||
|
- 7 |
||||
|
ignore: |
||||
|
- goos: darwin |
||||
|
goarch: 386 |
||||
|
- goos: darwin |
||||
|
goarch: arm |
||||
|
flags: |
||||
|
- -trimpath |
||||
|
ldflags: |
||||
|
- -s -w |
||||
|
archives: |
||||
|
- format_overrides: |
||||
|
- goos: windows |
||||
|
format: zip |
||||
|
replacements: |
||||
|
darwin: macOS |
||||
|
linux: Linux |
||||
|
windows: Windows |
||||
|
386: i386 |
||||
|
amd64: x86_64 |
||||
|
checksum: |
||||
|
algorithm: sha512 |
||||
|
release: |
||||
|
github: |
||||
|
owner: caddyserver |
||||
|
name: caddy |
||||
|
draft: true |
||||
|
prerelease: auto |
||||
|
changelog: |
||||
|
sort: asc |
||||
|
filters: |
||||
|
exclude: |
||||
|
- '^docs:' |
||||
|
- '^test:' |
||||
|
- '^chore:' |
||||
|
- '^\w+\s+' # a hack to remove commit messages without colons thus don't correspond to a package |
Loading…
Reference in new issue