name: Auto I18N Weekly env: TRANSLATION_API_KEY: ${{ secrets.TRANSLATE_API_KEY }} TRANSLATION_MODEL: ${{ vars.AUTO_I18N_MODEL || 'deepseek/deepseek-v3.1'}} TRANSLATION_BASE_URL: ${{ vars.AUTO_I18N_BASE_URL || 'https://api.ppinfra.com/openai'}} TRANSLATION_BASE_LOCALE: ${{ vars.AUTO_I18N_BASE_LOCALE || 'en-us'}} on: schedule: # Runs at 00:00 UTC every Sunday. # This corresponds to 08:00 AM UTC+8 (Beijing time) every Sunday. - cron: "0 0 * * 0" workflow_dispatch: jobs: auto-i18n: runs-on: ubuntu-latest name: Auto I18N permissions: contents: write pull-requests: write steps: - name: πŸˆβ€β¬› Checkout uses: actions/checkout@v6 with: fetch-depth: 0 - name: πŸ“¦ Setting Node.js uses: actions/setup-node@v6 with: node-version: 22 - name: πŸ“¦ Install corepack run: corepack enable && corepack prepare yarn@4.9.1 --activate - name: πŸ“‚ Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - name: πŸ’Ύ Cache yarn dependencies uses: actions/cache@v4 with: path: | ${{ steps.yarn-cache-dir-path.outputs.dir }} node_modules key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: πŸ“¦ Install dependencies run: | yarn install - name: πŸƒβ€β™€οΈ Translate run: yarn i18n:sync && yarn i18n:translate - name: πŸ” Format run: yarn format - name: πŸ” Check for changes id: git_status run: | # Check if there are any uncommitted changes git reset -- package.json yarn.lock # 不提亀 package.json ε’Œ yarn.lock ηš„ζ›΄ζ”Ή git diff --exit-code --quiet || echo "::set-output name=has_changes::true" git status --porcelain - name: πŸ“… Set current date for PR title id: set_date run: echo "CURRENT_DATE=$(date +'%b %d, %Y')" >> $GITHUB_ENV # e.g., "Jun 06, 2024" - name: πŸš€ Create Pull Request if changes exist if: steps.git_status.outputs.has_changes == 'true' uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.GITHUB_TOKEN }} # Use the built-in GITHUB_TOKEN for bot actions commit-message: "feat(bot): Weekly automated script run" title: "πŸ€– Weekly Auto I18N Sync: ${{ env.CURRENT_DATE }}" body: | This PR includes changes generated by the weekly auto i18n. Review the changes before merging. --- _Generated by the automated weekly workflow_ branch: "auto-i18n-weekly-${{ github.run_id }}" # Unique branch name base: "main" # Or 'develop', set your base branch delete-branch: true # Delete the branch after merging or closing the PR - name: πŸ“’ Notify if no changes if: steps.git_status.outputs.has_changes != 'true' run: echo "Bot script ran, but no changes were detected. No PR created."