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 - GO111MODULE=on main: main.go dir: ./xcaddy-build binary: xcaddy goos: - darwin - linux - windows - freebsd goarch: - amd64 - arm - arm64 - s390x - ppc64le goarm: - 5 - 6 - 7 ignore: - goos: darwin goarch: arm - goos: darwin goarch: ppc64le - goos: darwin goarch: s390x - goos: windows goarch: ppc64le - goos: windows goarch: s390x - goos: freebsd goarch: ppc64le - goos: freebsd goarch: s390x - goos: freebsd goarch: arm goarm: 5 flags: - -trimpath ldflags: - -s -w archives: - format_overrides: - goos: windows format: zip replacements: darwin: mac checksum: algorithm: sha512 nfpms: - id: default package_name: xcaddy vendor: Light Code Labs homepage: https://caddyserver.com maintainer: Matthew Holt 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?:'