openmeter / .github /workflows /release-go-sdk.yaml
Leon4gr45's picture
Upload folder using huggingface_hub
81b285e verified
Raw
History Blame Contribute Delete
2.4 kB
# Release gate for the v3 Go SDK (nested module at api/v3/client).
#
# The SDK is released in lockstep with the main module, like the other SDKs:
# every root release tag (vX.Y.Z[-suffix]) runs the SDK gate and then pushes
# the paired nested-module tag api/v3/client/vX.Y.Z at the same commit — the
# tag itself is the release, with no stamping commit required first, because
# Version resolves at runtime from the consumer's build info (see
# api/v3/client/option.go), falling back to the sdk-version emitter option
# only when that is unavailable. There is no standalone SDK release path.
#
# This lives separately from release.yaml (which fires on the same root
# tags for containers, Helm charts, binaries, and the Python SDK) so the SDK
# gate and tag push stay independent of those jobs' outcomes and gates.
name: Go SDK Release
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
- "v[0-9]+.[0-9]+.[0-9]+-dev.[0-9]+"
- "v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+"
permissions:
contents: read
jobs:
release:
name: Go SDK Release
runs-on: ubuntu-latest
environment: prod
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Set up Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version-file: api/v3/client/go.mod
cache: false
- name: Run Go SDK checks
run: make test-go-sdk
# Tags pushed with GITHUB_TOKEN do not recursively trigger workflows,
# so pushing the nested tag here does not fire this workflow again —
# intentional, since the gate above already validated this commit.
- name: Push paired nested-module tag
env:
GH_TOKEN: ${{ github.token }}
run: |
NESTED_TAG="api/v3/client/${GITHUB_REF_NAME}"
if error="$(gh api --method POST "repos/${{ github.repository }}/git/refs" \
-f ref="refs/tags/${NESTED_TAG}" \
-f sha="${GITHUB_SHA}" 2>&1)"; then
echo "Pushed ${NESTED_TAG}"
elif echo "$error" | grep -qi "already exists"; then
echo "Tag ${NESTED_TAG} already exists; skipping."
else
echo "$error" >&2
exit 1
fi