when: - event: release steps: - name: test image: golang:latest commands: - go test ./... - name: build image: golang:latest commands: - VERSION=${CI_COMMIT_TAG} - go build -ldflags="-s -w -X main.version=${VERSION}" -o node-lookup ./... depends_on: [test] - name: release image: git.unkin.net/unkin/almalinux9-base:20260325 environment: RELEASER_TOKEN: from_secret: RELEASER_TOKEN commands: - | PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "") if [ -n "$PREV_TAG" ]; then NOTES=$(git log "${PREV_TAG}..${CI_COMMIT_TAG}" --merges --pretty=format:"- %s") else NOTES=$(git log --merges --pretty=format:"- %s") fi BODY=$(printf '%s' "$NOTES" | sed 's/"/\\"/g; s/$/\\n/' | tr -d '\n') GET_RESPONSE=$(curl -s "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/tags/${CI_COMMIT_TAG}") echo "GET response: ${GET_RESPONSE}" RELEASE_ID=$(printf '%s' "${GET_RESPONSE}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) if [ -z "$RELEASE_ID" ]; then echo "ERROR: failed to find release for tag ${CI_COMMIT_TAG}" >&2 exit 1 fi echo "Release ID: ${RELEASE_ID}" curl -s -X PATCH "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}" \ -H "Authorization: token ${RELEASER_TOKEN}" \ -H "Content-Type: application/json" \ -d "{\"body\":\"${BODY}\"}" curl -s -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}/assets" \ -H "Authorization: token ${RELEASER_TOKEN}" \ -F "attachment=@node-lookup" backend_options: kubernetes: serviceAccountName: default depends_on: [build]