-
-
Notifications
You must be signed in to change notification settings - Fork 112
/
.goreleaser.yml
120 lines (110 loc) · 2.84 KB
/
.goreleaser.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
version: 2
before:
hooks:
# The build is done in this particular way to build xcaddy in a designated directory named in .gitignore.
# This is so we can run goreleaser on tag without Git complaining of being dirty. The main.go in cmd/xcaddy directory
# cannot be built within that directory due to changes necessary for the build causing Git to be dirty, which
# subsequently causes gorleaser to refuse running.
- mkdir -p xcaddy-build
- cp cmd/xcaddy/main.go xcaddy-build/main.go
- cp ./go.mod xcaddy-build/go.mod
- sed -i.bkp 's|github.com/caddyserver/xcaddy|xcaddy|g' ./xcaddy-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/xcaddy@{{.Env.TAG}} ./xcaddy-build/go.mod
# as of Go 1.16, `go` commands no longer automatically change go.{mod,sum}. We now have to explicitly
# run `go mod tidy`. The `/bin/sh -c '...'` is because goreleaser can't find cd in PATH without shell invocation.
- /bin/sh -c 'cd ./xcaddy-build && go mod tidy'
- go mod download
builds:
- env:
- CGO_ENABLED=0
main: main.go
dir: ./xcaddy-build
binary: xcaddy
goos:
- darwin
- linux
- windows
- freebsd
goarch:
- amd64
- arm
- arm64
- s390x
- ppc64le
- riscv64
goarm:
- "5"
- "6"
- "7"
ignore:
- goos: darwin
goarch: arm
- goos: darwin
goarch: ppc64le
- goos: darwin
goarch: riscv64
- goos: darwin
goarch: s390x
- goos: windows
goarch: ppc64le
- goos: windows
goarch: riscv64
- goos: windows
goarch: s390x
- goos: freebsd
goarch: ppc64le
- goos: freebsd
goarch: riscv64
- goos: freebsd
goarch: s390x
- goos: freebsd
goarch: arm
goarm: "5"
flags:
- -trimpath
ldflags:
- -s -w
archives:
- format_overrides:
- goos: windows
format: zip
name_template: >-
{{ .ProjectName }}_
{{- .Version }}_
{{- if eq .Os "darwin" }}mac{{ else }}{{ .Os }}{{ end }}_
{{- .Arch }}
{{- with .Arm }}v{{ . }}{{ end }}
{{- with .Mips }}_{{ . }}{{ end }}
{{- if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}
checksum:
algorithm: sha512
nfpms:
- id: default
package_name: xcaddy
vendor: Dyanim
homepage: https://caddyserver.com
maintainer: Matthew Holt <[email protected]>
description: |
Build Caddy with plugins
license: Apache 2.0
formats:
- deb
# - rpm
bindir: /usr/bin
release:
github:
owner: caddyserver
name: xcaddy
draft: false
prerelease: auto
changelog:
sort: asc
filters:
exclude:
- '^readme:'
- '^chore:'
- '^ci:'
- '^docs?:'
- '^tests?:'