diff options
author | Francis Lavoie <lavofr@gmail.com> | 2020-04-26 22:20:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-26 20:20:14 -0600 |
commit | 768383a610d529e72ccf34b05822c60616cbcada (patch) | |
tree | d3e7487e1dec405e11481ae7c324b3cfa1d2cb1c | |
parent | 570d84f7d3642b85f96906ceab6402678177949e (diff) |
ci: Enable GoReleaser .deb support (#3309)
* ci: Enable GoReleaser .deb support
* ci: Test .deb build
* ci: Fix typo
* ci: Turn off snapshot (breaks due to go mod edit)
* ci: Force the tag to rc3 for now
* ci: Let's try to publish the .debs
* ci: Attempt to enable build cache, rebuild after fixed line endings
* ci: Fix yml dupe ID issue, add caddy-api.service
* ci: Split cache keys between files so they're separate
* ci: Fix bindir
* ci: Update the script files
* ci: Retrigger
* ci: Push to gemfury
* ci: Use loop, fix bad env var
* ci: Retrigger
* ci: Try to force blank password?
* ci: Check if the token is actually present
* ci: Cleanup, remove debugging stuff
* ci: Remove useless comment
-rw-r--r-- | .github/workflows/ci.yml | 4 | ||||
-rw-r--r-- | .github/workflows/release.yml | 27 | ||||
-rw-r--r-- | .goreleaser.yml | 35 |
3 files changed, 57 insertions, 9 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f34dde..d8d1cf7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,9 +72,9 @@ jobs: uses: actions/cache@v1 with: path: ${{ steps.vars.outputs.go_cache }} - key: ${{ runner.os }}-go-gocache-${{ hashFiles('**/go.sum') }} + key: ${{ runner.os }}-go-ci-${{ hashFiles('**/go.sum') }} restore-keys: | - ${{ runner.os }}-go- + ${{ runner.os }}-go-ci - name: Get dependencies run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e67ae6e..a58a793 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,6 +27,7 @@ jobs: - name: Unshallowify the repo clone run: git fetch --prune --unshallow + # https://github.community/t5/GitHub-Actions/How-to-get-just-the-tag-name/m-p/32167/highlight/true#M1027 - name: Print Go version and environment id: vars run: | @@ -36,11 +37,17 @@ jobs: 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\//}" + echo "::set-output name=version_tag::${GITHUB_REF/refs\/tags\//}" + echo "::set-output name=short_sha::$(git rev-parse --short HEAD)" + echo "::set-output name=go_cache::$(go env GOCACHE)" + + - name: Cache the build cache + uses: actions/cache@v1 + with: + path: ${{ steps.vars.outputs.go_cache }} + key: ${{ runner.os }}-go-release-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go-release # GoReleaser will take care of publishing those artifacts into the release - name: Run GoReleaser @@ -50,4 +57,12 @@ jobs: args: release --rm-dist env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - TAG: ${{ steps.get_version.outputs.version_tag }} + TAG: ${{ steps.vars.outputs.version_tag }} + + - name: Publish .deb to Gemfury + env: + GEMFURY_PUSH_TOKEN: ${{ secrets.GEMFURY_PUSH_TOKEN }} + run: | + for filename in dist/*.deb; do + curl -F package=@"$filename" https://${GEMFURY_PUSH_TOKEN}:@push.fury.io/caddy/ + done
\ No newline at end of file diff --git a/.goreleaser.yml b/.goreleaser.yml index b5ca613..c1e162f 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -3,12 +3,13 @@ before: - 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 + - 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 @@ -35,6 +36,7 @@ builds: - -trimpath ldflags: - -s -w + archives: - format_overrides: - goos: windows @@ -43,12 +45,43 @@ archives: darwin: mac checksum: algorithm: sha512 + +nfpms: + - id: default + package_name: caddy + + vendor: Light Code Labs + homepage: https://caddyserver.com + maintainer: Matthew Holt <mholt@users.noreply.github.com> + description: | + Powerful, enterprise-ready, open source web server with automatic HTTPS written in Go + license: Apache 2.0 + + formats: + - deb + # - rpm + + bindir: /usr/bin + files: + ./caddy-dist/init/caddy.service: /lib/systemd/system/caddy.service + ./caddy-dist/init/caddy-api.service: /lib/systemd/system/caddy-api.service + ./caddy-dist/welcome/index.html: /usr/share/caddy/index.html + config_files: + ./caddy-dist/config/Caddyfile: /etc/caddy/Caddyfile + + scripts: + postinstall: ./caddy-dist/scripts/postinstall.sh + preremove: ./caddy-dist/scripts/preremove.sh + postremove: ./caddy-dist/scripts/postremove.sh + + release: github: owner: caddyserver name: caddy draft: true prerelease: auto + changelog: sort: asc filters: |