fix: Count today's releases via Gitea API instead of local git tags
User asked why every release tonight had the same "sequence number" (quant_20260711.1.*) despite creating three of them. Confirmed via API: tagsb7591fb,6ab270f, ande49922eall exist for 2026-07-11, all claiming to be deploy #1. Root cause: `actions/checkout@v4` (no fetch-depth/fetch-tags options) does a shallow, tags-less clone by default. Each prepare-release.yml run happens in a brand-new container, so `git tag -l "quant_${TODAY}.*"` always sees zero local tags regardless of how many releases actually exist -- DEPLOY_COUNT was permanently stuck at 0+1=1. Fix: query GET /repos/{repo}/tags via the Gitea API (same token/curl pattern already used elsewhere in this workflow) to count today's actual tags, instead of relying on the job's local, incomplete git state.
This commit is contained in:
@@ -31,6 +31,8 @@ jobs:
|
||||
|
||||
- name: Generate Metadata
|
||||
id: metadata
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
run: |
|
||||
VERSION_INPUT="${{ github.event.inputs.version }}"
|
||||
COMMIT=$(git rev-parse --short HEAD)
|
||||
@@ -39,8 +41,18 @@ jobs:
|
||||
if [ -z "$VERSION_INPUT" ]; then
|
||||
TODAY=$(TZ=UTC date +%Y%m%d)
|
||||
|
||||
# Count releases for today
|
||||
RELEASES_TODAY=$(git tag -l "quant_${TODAY}.*" | wc -l)
|
||||
# NOTE: Do NOT count today's releases via `git tag -l` here.
|
||||
# actions/checkout@v4 defaults to a shallow, single-branch
|
||||
# clone that does not fetch any tags, so every job container
|
||||
# sees zero local tags regardless of how many releases exist
|
||||
# -- this is exactly why every release tonight came out as
|
||||
# "quant_20260711.1.*" (three of them: b7591fb, 6ab270f,
|
||||
# e49922e, all claiming to be deploy #1). Query the actual
|
||||
# Gitea Releases API instead, which reflects real state.
|
||||
RELEASES_TODAY=$(curl -sf --connect-timeout 10 --max-time 30 \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
"https://gitea.taxbaik.com/api/v1/repos/${{ github.repository }}/tags?limit=50" \
|
||||
| jq -r --arg prefix "quant_${TODAY}." '[.[] | select(.name | startswith($prefix))] | length')
|
||||
DEPLOY_COUNT=$((RELEASES_TODAY + 1))
|
||||
|
||||
VERSION="quant_${TODAY}.${DEPLOY_COUNT}.${COMMIT}"
|
||||
|
||||
Reference in New Issue
Block a user