diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2b35388..953a082 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1320,8 +1320,10 @@ jobs: run: | RELEASE_JSON=$(gh api "repos/${{ github.repository }}/releases/tags/${{ inputs.tag }}" 2>/dev/null || echo '{}') echo "$RELEASE_JSON" | jq -r '.body // empty' > /tmp/changelog.md || true - CREATED_AT=$(echo "$RELEASE_JSON" | jq -r '.created_at // empty') - echo "released_at=$CREATED_AT" >> "$GITHUB_OUTPUT" + # Prefer publish time; created_at can predate visibility for draft releases + # and for normal create-then-publish workflow runs. + RELEASED_AT=$(echo "$RELEASE_JSON" | jq -r '.published_at // .created_at // empty') + echo "released_at=$RELEASED_AT" >> "$GITHUB_OUTPUT" - name: Write merged manifest from dist recording job working-directory: _workflows diff --git a/cmd/record-release/main.go b/cmd/record-release/main.go index 642c37b..449fa3c 100644 --- a/cmd/record-release/main.go +++ b/cmd/record-release/main.go @@ -99,7 +99,7 @@ func main() { flag.StringVar(&configSchemaPath, "config-schema", "", "Path to config_schema.json file (optional)") flag.StringVar(&capabilitiesPath, "capabilities", "", "Path to baton_capabilities.json file (optional)") var releasedAt string - flag.StringVar(&releasedAt, "released-at", "", "Release creation timestamp in RFC 3339 format (optional, defaults to server time)") + flag.StringVar(&releasedAt, "released-at", "", "Release publish timestamp in RFC 3339 format (optional, defaults to server time)") flag.StringVar(&token, "token", "", "Bearer token (or set REGISTRY_API_TOKEN env var)") flag.Parse()