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: DRONECI_PASSWORD: from_secret: DRONECI_PASSWORD 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') RELEASE_RESPONSE=$(curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases" \ -u "droneci:$DRONECI_PASSWORD" \ -H "Content-Type: application/json" \ -d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"name\":\"${CI_COMMIT_TAG}\",\"body\":\"${BODY}\"}") echo "Release API response: ${RELEASE_RESPONSE}" RELEASE_ID=$(echo "${RELEASE_RESPONSE}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) if [ -z "$RELEASE_ID" ]; then echo "ERROR: failed to obtain release ID" >&2 exit 1 fi echo "Release ID: ${RELEASE_ID}" curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}/assets" \ -u "droneci:$DRONECI_PASSWORD" \ -F "attachment=@node-lookup" backend_options: kubernetes: serviceAccountName: default depends_on: [build]