Skip to content

fix(ci): let locale finalizers queue independently#68

Merged
vincentkoc merged 1 commit into
mainfrom
fix/i18n-finalizer-concurrency
Jun 27, 2026
Merged

fix(ci): let locale finalizers queue independently#68
vincentkoc merged 1 commit into
mainfrom
fix/i18n-finalizer-concurrency

Conversation

@vincentkoc

@vincentkoc vincentkoc commented Jun 27, 2026

Copy link
Copy Markdown
Member

What Problem This Solves

Full translation runs still cancel locale finalizers when several locale artifacts finish close together. GitHub Actions concurrency groups allow only one running and one pending job per group, so the shared docs-i18n-finalize group cancels older pending per-locale finalizers before they can commit their artifacts.

Observed on https://github.com/openclaw/docs/actions/runs/28285982968: Full batch 1 (zh-TW, zh-tw) / Finalize zh-TW artifact was cancelled with Canceling since a higher priority waiting request for docs-i18n-finalize exists while other locale finalizers continued.

Why This Change Was Made

The per-locale finalizer no longer uses the shared Actions concurrency group. Its commit script already handles the real contention point by fetching latest main, rebasing, checking source metadata, retrying push conflicts, and skipping stale artifacts safely.

Because parallel finalizers can now dispatch locale R2 deploys concurrently, R2 dispatches also get a unique request_id in the workflow run title. The waiter resolves the exact R2 run by that request id instead of treating concurrent workflow_dispatch runs as ambiguous.

Scoped R2 deploys now fail when their content goes stale before upload, and the dispatch waiter retries them against latest main. That keeps locale commits from silently skipping their scoped publish when another locale commit lands during build.

User Impact

Full docs translation runs can publish all completed locale artifacts instead of dropping older pending finalizers or silently skipping scoped uploads when multiple locales finish around the same time.

Evidence

  • python3 .github/scripts/i18n/tests/test_i18n_scripts.py (Ran 42 tests, OK)
  • git diff --check

@vincentkoc vincentkoc requested a review from a team as a code owner June 27, 2026 13:45
@mintlify

mintlify Bot commented Jun 27, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
clawdhub 🟡 Building Jun 27, 2026, 1:45 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@mintlify

mintlify Bot commented Jun 27, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
openclaw 🟡 Building Jun 27, 2026, 1:45 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@vincentkoc vincentkoc force-pushed the fix/i18n-finalizer-concurrency branch from a888843 to 450757e Compare June 27, 2026 13:47
@vincentkoc vincentkoc force-pushed the fix/i18n-finalizer-concurrency branch from 450757e to 1ca951e Compare June 27, 2026 13:50
@vincentkoc

Copy link
Copy Markdown
Member Author

Land-ready proof for this finalizer/concurrent deploy fix:

  • Local: python3 .github/scripts/i18n/tests/test_i18n_scripts.py (Ran 42 tests, OK)
  • Local: git diff --check
  • Autoreview: clean, no accepted/actionable findings
  • CI: CodeQL analyze (actions), CodeQL analyze (javascript-typescript), and CodeQL all passed on 1ca951e74c0c47cb539fbeb1731d4ee555026b61

This fixes the observed docs-i18n-finalize pending-job cancellation in https://github.com/openclaw/docs/actions/runs/28285982968 and also keeps scoped R2 deploy resolution/retry safe once finalizers run independently.

@vincentkoc vincentkoc merged commit 711b6fb into main Jun 27, 2026
3 checks passed
@vincentkoc vincentkoc deleted the fix/i18n-finalizer-concurrency branch June 27, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant