|
name: Sync Check with Upstream |
|
|
|
on: |
|
schedule: |
|
- cron: '0 3 * * 1' # jeden Montag um 3 Uhr nachts |
|
workflow_dispatch: |
|
|
|
jobs: |
|
check-sync: |
|
runs-on: ubuntu-latest |
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
version: ['3.14', '3.15'] |
|
steps: |
|
- name: Translation-Repo auschecken |
|
uses: actions/checkout@v4 |
|
with: |
|
ref: ${{ matrix.version }} |
|
|
|
- name: Passenden CPython-Branch auschecken |
|
uses: actions/checkout@v4 |
|
with: |
|
repository: python/cpython |
|
ref: ${{ matrix.version }} |
|
path: cpython-src |
|
|
|
- name: gettext installieren (für msgmerge) |
|
run: sudo apt-get update && sudo apt-get install -y gettext |
|
|
|
- name: Python + Sphinx einrichten |
|
run: | |
|
python3 -m venv cpython-src/Doc/venv |
|
cpython-src/Doc/venv/bin/pip install sphinx blurb |
|
|
|
- name: Frische POT-Dateien bauen |
|
run: | |
|
cd cpython-src/Doc |
|
PATH="./venv/bin:$PATH" make gettext |
|
|
|
- name: powrap installieren (für einheitliche Zeilenumbrüche) |
|
run: pip install --break-system-packages powrap |
|
|
|
- name: msgmerge gegen alle .po-Dateien laufen lassen |
|
run: | |
|
for pot in $(find cpython-src/Doc/build/gettext -name "*.pot"); do |
|
rel="${pot#cpython-src/Doc/build/gettext/}" |
|
po="${rel%.pot}.po" |
|
if [ -f "$po" ]; then |
|
msgmerge --quiet --update --backup=none "$po" "$pot" |
|
powrap "$po" |
|
fi |
|
done |
|
|
|
- name: Prüfen, ob sich etwas geändert hat |
|
id: check |
|
run: | |
|
if git diff --quiet; then |
|
echo "changed=false" >> "$GITHUB_OUTPUT" |
|
else |
|
echo "changed=true" >> "$GITHUB_OUTPUT" |
|
fi |
|
|
|
- name: PR mit den Aktualisierungen erstellen |
|
if: steps.check.outputs.changed == 'true' |
|
uses: peter-evans/create-pull-request@v6 |
|
with: |
|
branch: sync-upstream-${{ matrix.version }} |
|
base: ${{ matrix.version }} |
|
title: "Sync mit Upstream-Änderungen (${{ matrix.version }})" |
|
body: | |
|
Automatisch erkannte Änderungen im englischen Original-Quelltext. |
|
Neue `fuzzy`-Markierungen und fehlende Strings bitte manuell prüfen. |
|
commit-message: "Sync mit Upstream-Änderungen (${{ matrix.version }})" |