Browse Source
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
master
Francis Lavoie
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
57 additions and
9 deletions
.github/workflows/ci.yml
.github/workflows/release.yml
.goreleaser.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 : |
@ -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
@ -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: