diff --git a/.woodpecker/release.yml b/.woodpecker/release.yml new file mode 100644 index 0000000..93527fc --- /dev/null +++ b/.woodpecker/release.yml @@ -0,0 +1,50 @@ +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/distributor/cmd/distributor" + + rm -rf "$dist" + mkdir -p "$dist" + + build_binary() { + goos="$1" + goarch="$2" + suffix="$3" + output="$dist/distributor-$version-$goos-$goarch$suffix" + + CGO_ENABLED=0 GOOS="$goos" GOARCH="$goarch" \ + go build -trimpath -ldflags "-s -w -X gitea.maximumdirect.net/eric/distributor/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" + + - name: publish-release + image: woodpeckerci/plugin-release + depends_on: + - build-release-assets + settings: + api_key: + from_secret: GITEA_RELEASE_TOKEN + files: + - dist/distributor-* + checksum: sha256 + checksum-file: SHA256SUMS + checksum-flatten: true + file-exists: skip + overwrite: false + prerelease: false