summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yml4
-rw-r--r--.github/workflows/release.yml27
-rw-r--r--.goreleaser.yml35
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: