Skip to content

Merge pull request #160 from github/migration/frontmatter-assets #15

Merge pull request #160 from github/migration/frontmatter-assets

Merge pull request #160 from github/migration/frontmatter-assets #15

name: Co-op Translator
on:
workflow_dispatch:
push:
branches:
- main
paths:
- "**/*.md"
- "**/*.png"
- "**/*.jpg"
- "**/*.jpeg"
- "**/*.webp"
- "!translations/**"
- "!translated_images/**"
- "!.github/**"
- "!samples/skills/**"
permissions:
contents: write
pull-requests: write
jobs:
translate-content:
name: Translate Markdown and Images
runs-on: ubuntu-latest
timeout-minutes: 90
env:
TRANSLATION_LANGUAGES: "es"
PYTHONIOENCODING: utf-8
AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }}
AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }}
AZURE_OPENAI_MODEL_NAME: ${{ secrets.AZURE_OPENAI_MODEL_NAME }}
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT_NAME }}
AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }}
AZURE_AI_SERVICE_API_KEY: ${{ secrets.AZURE_AI_SERVICE_API_KEY }}
AZURE_AI_SERVICE_ENDPOINT: ${{ secrets.AZURE_AI_SERVICE_ENDPOINT }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENAI_ORG_ID: ${{ secrets.OPENAI_ORG_ID }}
OPENAI_CHAT_MODEL_ID: ${{ secrets.OPENAI_CHAT_MODEL_ID }}
OPENAI_BASE_URL: ${{ secrets.OPENAI_BASE_URL }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install Co-op Translator
run: |
python -m pip install --upgrade pip
python -m pip install co-op-translator
- name: Translate Markdown
run: |
for attempt in 1 2 3; do
if translate -l "$TRANSLATION_LANGUAGES" -md -y -s --repo-url "https://github.com/github/copilot-cli-for-beginners.git"; then
exit 0
fi
echo "Markdown translation attempt $attempt failed."
if [ "$attempt" -lt 3 ]; then
sleep 30
fi
done
exit 1
- name: Translate images
run: |
for attempt in 1 2 3; do
if translate -l "$TRANSLATION_LANGUAGES" -img -y -s --repo-url "https://github.com/github/copilot-cli-for-beginners.git"; then
exit 0
fi
echo "Image translation attempt $attempt failed."
if [ "$attempt" -lt 3 ]; then
sleep 30
fi
done
exit 1
- name: Normalize and review translations
run: |
migrate-links -l "$TRANSLATION_LANGUAGES" -y
node .github/scripts/fix-translated-markdown.js "$TRANSLATION_LANGUAGES"
if command -v co-op-review >/dev/null 2>&1; then
co-op-review -l "$TRANSLATION_LANGUAGES" --format github
else
echo "co-op-review is not available in the installed Co-op Translator package; skipping."
fi
- name: Remove excluded translations
run: |
for language in $TRANSLATION_LANGUAGES; do
rm -rf \
"translations/$language/.github" \
"translations/$language/samples/skills" \
"translated_images/$language/.github" \
"translated_images/$language/samples/skills"
done
- name: Upload Co-op Translator logs
if: always()
uses: actions/upload-artifact@v4
with:
name: co-op-translator-logs
path: logs/
if-no-files-found: ignore
- name: Create pull request
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.GH_AW_GITHUB_TOKEN }}
commit-message: "Update translations via Co-op Translator"
title: "Update translations via Co-op Translator"
body: |
This PR updates Markdown and image translations generated by Co-op Translator.
Generated content is available in the `translations/` and `translated_images/` directories.
branch: update-translations
base: main
labels: translation, automated-pr
delete-branch: true
add-paths: |
translations/
translated_images/