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
							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