diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml new file mode 100644 index 0000000..ea2e620 --- /dev/null +++ b/.woodpecker/release.yml @@ -0,0 +1,53 @@ +when: + - event: tag + +steps: + - name: build-release-assets + image: golang:1.25 + commands: + - | + set -eu + + version="${CI_COMMIT_TAG}" + dist="dist" + pkg="gitea.maximumdirect.net/eric/seriatim/cmd/seriatim" + + rm -rf "$dist" + mkdir -p "$dist" + + build_binary() { + goos="$1" + goarch="$2" + suffix="$3" + output="$dist/seriatim_${version}_${goos}_${goarch}${suffix}" + + CGO_ENABLED=0 GOOS="$goos" GOARCH="$goarch" \ + go build -trimpath -ldflags "-s -w -X gitea.maximumdirect.net/eric/seriatim/internal/buildinfo.Version=${version}" \ + -o "$output" "$pkg" + } + + build_binary linux amd64 "" + build_binary linux arm64 "" + build_binary darwin amd64 "" + build_binary darwin arm64 "" + build_binary windows amd64 ".exe" + build_binary windows arm64 ".exe" + + ( + cd "$dist" + sha256sum seriatim_* > SHA256SUMS + ) + + - name: publish-release + image: woodpeckerci/plugin-release + depends_on: + - build-release-assets + settings: + api_key: + from_secret: GITEA_RELEASE_TOKEN + files: + - dist/seriatim_* + - dist/SHA256SUMS + file-exists: skip + overwrite: false + prerelease: false