matrix: include: - GO_IMAGE: golang:1.26.8-bookworm when: - event: tag ref: refs/tags/v* steps: - name: deliver image: ${GO_IMAGE} environment: RELEASEKIT_GITEA_TOKEN: from_secret: releasekit_gitea_token commands: - | set -eu test -n "$${CI_COMMIT_TAG}" test -n "$${CI_COMMIT_SHA}" git check-ref-format "refs/tags/$${CI_COMMIT_TAG}" git fetch origin "refs/tags/$${CI_COMMIT_TAG}:refs/tags/$${CI_COMMIT_TAG}" tag_commit=$(git rev-parse --verify "refs/tags/$${CI_COMMIT_TAG}^{commit}") expected_commit=$(git rev-parse --verify "$${CI_COMMIT_SHA}^{commit}") if [ "$${tag_commit}" != "$${expected_commit}" ]; then printf 'Tag %s resolves to commit %s; event %s resolves to commit %s\n' \ "$${CI_COMMIT_TAG}" "$${tag_commit}" "$${CI_COMMIT_SHA}" "$${expected_commit}" >&2 exit 1 fi git checkout --detach "$${tag_commit}" test "$(git rev-parse HEAD | tr '[:upper:]' '[:lower:]')" = "$${expected_commit}" test -z "$(git status --porcelain --untracked-files=all)" bootstrap_dir=$(mktemp -d "$${CI_WORKSPACE%/*}/.releasekit-bootstrap.XXXXXX") trap 'rm -rf "$${bootstrap_dir}"' EXIT cp go.mod "$${bootstrap_dir}/go.mod" if [ -f go.sum ]; then cp go.sum "$${bootstrap_dir}/go.sum" else : > "$${bootstrap_dir}/go.sum" fi cp "$${bootstrap_dir}/go.mod" "$${bootstrap_dir}/releasekit.mod" cp "$${bootstrap_dir}/go.sum" "$${bootstrap_dir}/releasekit.sum" export GOWORK=off export GOTOOLCHAIN=local releasekit_module=gitea.maximumdirect.net/eric/ReleaseKit go list -mod=mod -modfile="$${bootstrap_dir}/releasekit.mod" -m "$${releasekit_module}" go build -mod=mod -modfile="$${bootstrap_dir}/releasekit.mod" \ -o "$${bootstrap_dir}/releasekit" "$${releasekit_module}/cmd/releasekit" "$${bootstrap_dir}/releasekit" ci-deliver \ --repo "$${CI_WORKSPACE}" \ --prepared \ --commit "$${expected_commit}" \ "$${CI_COMMIT_TAG}"