matrix: include: - GO_IMAGE: golang:1.25.0-bookworm RELEASEKIT_SOURCE: REPLACE_WITH_IMMUTABLE_COMMIT when: - event: tag ref: refs/tags/v* steps: - name: prepare image: ${GO_IMAGE} commands: - | test -n "$${CI_COMMIT_TAG}" test -n "$${CI_COMMIT_SHA}" git fetch origin "refs/tags/$${CI_COMMIT_TAG}:refs/tags/$${CI_COMMIT_TAG}" test "$(git rev-parse "refs/tags/$${CI_COMMIT_TAG}^{commit}")" = "$${CI_COMMIT_SHA}" git checkout --detach "$${CI_COMMIT_SHA}" test "$(git rev-parse HEAD)" = "$${CI_COMMIT_SHA}" printf '\n/.releasekit/\n' >> .git/info/exclude mkdir -p "$${CI_WORKSPACE}/.releasekit/bin" "$${CI_WORKSPACE}/.releasekit/gocache" "$${CI_WORKSPACE}/.releasekit/gomodcache" export GOCACHE="$${CI_WORKSPACE}/.releasekit/gocache" export GOMODCACHE="$${CI_WORKSPACE}/.releasekit/gomodcache" go mod download GOBIN="$${CI_WORKSPACE}/.releasekit/bin" go install gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@${RELEASEKIT_SOURCE} - name: build image: ${GO_IMAGE} commands: - | export GOCACHE="$${CI_WORKSPACE}/.releasekit/gocache" export GOMODCACHE="$${CI_WORKSPACE}/.releasekit/gomodcache" GOPROXY=off GOTOOLCHAIN=local "$${CI_WORKSPACE}/.releasekit/bin/releasekit" build --repo "$${CI_WORKSPACE}" --output "$${CI_WORKSPACE}/.releasekit/assets" "$${CI_COMMIT_TAG}" - name: deliver image: ${GO_IMAGE} environment: RELEASEKIT_GITEA_TOKEN: from_secret: releasekit_gitea_token commands: - | export GOCACHE="$${CI_WORKSPACE}/.releasekit/gocache" export GOMODCACHE="$${CI_WORKSPACE}/.releasekit/gomodcache" "$${CI_WORKSPACE}/.releasekit/bin/releasekit" deliver --repo "$${CI_WORKSPACE}" --assets "$${CI_WORKSPACE}/.releasekit/assets" "$${CI_COMMIT_TAG}"