Try fixing search #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Translate and Deploy Documentation | |
| on: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: # Allow manual triggering | |
| jobs: | |
| translate-and-deploy: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 120 | |
| permissions: | |
| contents: write # Required to push translations | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # Fetch all history for git diff | |
| token: ${{ secrets.GITHUB_TOKEN }} # Use GitHub token for auth | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Get changed files | |
| id: changed-files | |
| run: | | |
| # Get list of added or modified Markdown files in docs/en/ | |
| # Using --diff-filter=AM to include both Added and Modified files | |
| # Only check for changed files if docs were actually modified | |
| CHANGED_FILES=$(git diff --name-only --diff-filter=AM HEAD~1 HEAD | grep '^docs/en/.*\.md$' || true) | |
| if [ -z "$CHANGED_FILES" ]; then | |
| echo "No Markdown files changed in docs/en/" | |
| echo "changed=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "Changed files:" | |
| echo "$CHANGED_FILES" | |
| # Convert to space-separated list for easier processing | |
| FILES_LIST=$(echo "$CHANGED_FILES" | tr '\n' ' ') | |
| echo "files=$FILES_LIST" >> $GITHUB_OUTPUT | |
| echo "changed=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Translate changed files | |
| if: steps.changed-files.outputs.changed == 'true' | |
| env: | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| run: | | |
| # Translate each changed file | |
| for file in ${{ steps.changed-files.outputs.files }}; do | |
| # Remove 'docs/en/' prefix to get relative path | |
| RELATIVE_PATH="${file#docs/en/}" | |
| echo "Translating: $RELATIVE_PATH" | |
| python translate.py --file "$RELATIVE_PATH" --lang all --force | |
| done | |
| - name: Check for translation changes | |
| id: check-changes | |
| if: steps.changed-files.outputs.changed == 'true' | |
| run: | | |
| # Check if any translations were actually changed | |
| # ADD NEW LANGUAGES HERE | |
| if git diff --quiet docs/de/ docs/fr/ docs/es/ docs/zh/ docs/vi/ docs/tr/ docs/ru/ docs/pt/ docs/ja/ docs/da/ docs/fi/ docs/it/ docs/uk/; then | |
| echo "No translation changes" | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "Translation changes detected" | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Commit translations | |
| if: steps.check-changes.outputs.has_changes == 'true' | |
| run: | | |
| git config --local user.email "github-actions[bot]@users.noreply.github.com" | |
| git config --local user.name "github-actions[bot]" | |
| # ADD NEW LANGUAGES HERE | |
| git add docs/de/ docs/fr/ docs/es/ docs/zh/ docs/vi/ docs/tr/ docs/ru/ docs/pt/ docs/ja/ docs/da/ docs/fi/ docs/it/ docs/uk/ | |
| # Create commit message with list of translated files | |
| COMMIT_MSG="Auto-translate documentation\n\nTranslated files:\n" | |
| for file in ${{ steps.changed-files.outputs.files }}; do | |
| COMMIT_MSG="${COMMIT_MSG}- ${file}\n" | |
| done | |
| git commit -m "$(echo -e "$COMMIT_MSG")" | |
| - name: Push changes | |
| if: steps.check-changes.outputs.has_changes == 'true' | |
| run: | | |
| git push | |
| - name: Summary | |
| if: steps.changed-files.outputs.changed == 'true' | |
| run: | | |
| echo "## Translation Summary" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "Changed files in docs/en/:" >> $GITHUB_STEP_SUMMARY | |
| for file in ${{ steps.changed-files.outputs.files }}; do | |
| echo "- $file" >> $GITHUB_STEP_SUMMARY | |
| done | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| if [ "${{ steps.check-changes.outputs.has_changes }}" == "true" ]; then | |
| echo "✅ Translations updated and committed" >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "ℹ️ No translation changes needed" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| # Add translation stats if available | |
| if [ -n "${{ steps.translate.outputs.translation_success }}" ]; then | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "**Translation Stats:**" >> $GITHUB_STEP_SUMMARY | |
| echo "- ✅ Succeeded: ${{ steps.translate.outputs.translation_success }}" >> $GITHUB_STEP_SUMMARY | |
| echo "- ⚠️ Failed: ${{ steps.translate.outputs.translation_failed }}" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| - name: Deploy docs | |
| if: always() && !failure() && !cancelled() | |
| uses: mhausenblas/mkdocs-deploy-gh-pages@master | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| CONFIG_FILE: mkdocs.yml | |
| EXTRA_PACKAGES: build-base | |
| REQUIREMENTS: requirements.txt |