| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- name: docs-locale-sync
- on:
- push:
- branches:
- - dev
- paths:
- - packages/web/src/content/docs/*.mdx
- jobs:
- sync-locales:
- if: github.actor != 'opencode-agent[bot]'
- runs-on: blacksmith-4vcpu-ubuntu-2404
- permissions:
- id-token: write
- contents: write
- steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: Setup Bun
- uses: ./.github/actions/setup-bun
- - name: Setup git committer
- id: committer
- uses: ./.github/actions/setup-git-committer
- with:
- opencode-app-id: ${{ vars.OPENCODE_APP_ID }}
- opencode-app-secret: ${{ secrets.OPENCODE_APP_SECRET }}
- - name: Compute changed English docs
- id: changes
- run: |
- FILES=$(git diff --name-only "${{ github.event.before }}" "${{ github.sha }}" -- 'packages/web/src/content/docs/*.mdx' || true)
- if [ -z "$FILES" ]; then
- echo "has_changes=false" >> "$GITHUB_OUTPUT"
- echo "No English docs changed in push range"
- exit 0
- fi
- echo "has_changes=true" >> "$GITHUB_OUTPUT"
- {
- echo "files<<EOF"
- echo "$FILES"
- echo "EOF"
- } >> "$GITHUB_OUTPUT"
- - name: Sync locale docs with OpenCode
- if: steps.changes.outputs.has_changes == 'true'
- uses: sst/opencode/github@latest
- env:
- OPENCODE_API_KEY: ${{ secrets.OPENCODE_API_KEY }}
- with:
- model: opencode/gpt-5.2
- agent: docs
- prompt: |
- Update localized docs to match the latest English docs changes.
- Changed English doc files:
- <changed_english_docs>
- ${{ steps.changes.outputs.files }}
- </changed_english_docs>
- Requirements:
- 1. Update all relevant locale docs under packages/web/src/content/docs/<locale>/ so they reflect these English page changes.
- 2. Preserve frontmatter keys, internal links, code blocks, and existing locale-specific metadata unless the English change requires an update.
- 3. Keep locale docs structure aligned with their corresponding English pages.
- 4. Do not modify English source docs in packages/web/src/content/docs/*.mdx.
- 5. If no locale updates are needed, make no changes.
- - name: Commit and push locale docs updates
- if: steps.changes.outputs.has_changes == 'true'
- run: |
- if [ -z "$(git status --porcelain)" ]; then
- echo "No locale docs changes to commit"
- exit 0
- fi
- git add -A
- git commit -m "docs(i18n): sync locale docs from english changes"
- git pull --rebase --autostash origin "$GITHUB_REF_NAME"
- git push origin HEAD:"$GITHUB_REF_NAME"
|