Skip to content

Commit a3c54f3

Browse files
committed
branch-drift.yml -> improved, avoiding check triggered by each push
1 parent ea88d45 commit a3c54f3

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

‎Claude outputs/branch-drift.yml‎

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Meldet, wenn 3.14 und 3.15 inhaltlich auseinanderlaufen.
2+
#
3+
# Gearbeitet wird in 3.15, von dort wird nach 3.14 gespiegelt. Solange das so
4+
# bleibt, kann es keine Konflikte geben: ein Konflikt entsteht nur, wenn sich
5+
# BEIDE Seiten seit ihrem gemeinsamen Vorfahren bewegt haben. Dieser Lauf ist
6+
# das Frühwarnsystem dafür -- und dafür, dass msgmerge in 3.14 Übersetzungen
7+
# entfernt hat, die in 3.15 noch stehen.
8+
#
9+
# Der Zeitplan liegt bewusst nach "Sync Check with Upstream" (montags 3 Uhr),
10+
# denn genau dessen msgmerge-Lauf erzeugt die Abweichungen. Nach einem
11+
# gewoehnlichen Uebersetzungs-Commit gibt es dagegen nichts zu melden -- darum
12+
# laeuft der Abgleich NICHT bei jedem Push, sondern nur montags und von Hand.
13+
#
14+
# Ein roter Lauf bedeutet hier "der Abgleich selbst ist kaputt", nicht "es gibt
15+
# Konflikte". Gefundene Konflikte stehen in der Zusammenfassung und im Artefakt
16+
# "konflikte"; sie sind eine Arbeitsliste, kein Fehler.
17+
18+
name: Branch-Abgleich 3.15 nach 3.14
19+
20+
on:
21+
schedule:
22+
- cron: '0 9 * * 1' # montags 9 Uhr, sechs Stunden nach dem Upstream-Sync
23+
workflow_dispatch:
24+
25+
permissions:
26+
contents: read
27+
28+
jobs:
29+
abgleich:
30+
runs-on: ubuntu-latest
31+
steps:
32+
- name: 3.14 auschecken (Zielbranch), mit voller Historie
33+
uses: actions/checkout@v5
34+
with:
35+
ref: '3.14'
36+
fetch-depth: 0
37+
38+
- uses: actions/setup-python@v6
39+
with:
40+
python-version: '3.x'
41+
42+
- name: polib installieren
43+
run: pip install polib
44+
45+
- name: Trockenlauf 3.14 <- 3.15
46+
id: trockenlauf
47+
shell: bash
48+
run: |
49+
# Kein 2>/dev/null: Fehlermeldungen des Skripts gehoeren in den
50+
# Bericht, sonst scheitert der Lauf stumm.
51+
# Kein --streng: Konflikte sind eine Arbeitsliste und sollen den
52+
# Lauf nicht rot faerben.
53+
python tools/sync_branches.py \
54+
--von origin/3.15 --leere-ziele \
55+
-o konflikte.md 2>&1 | tee ergebnis.txt
56+
57+
- name: Bericht in die Zusammenfassung schreiben
58+
if: always()
59+
shell: bash
60+
run: |
61+
{
62+
echo "## Abgleich 3.14 <- 3.15"
63+
echo
64+
echo '```'
65+
cat ergebnis.txt 2>/dev/null || echo "(kein Ergebnis)"
66+
echo '```'
67+
if [ -s konflikte.md ]; then
68+
echo
69+
echo "Beide Branches haben dieselben Einträge geändert."
70+
echo "Diese Stellen wurden NICHT angefasst:"
71+
echo
72+
head -c 60000 konflikte.md
73+
fi
74+
} >> "$GITHUB_STEP_SUMMARY"
75+
76+
- name: Konfliktbericht als Artefakt ablegen
77+
if: always()
78+
uses: actions/upload-artifact@v4
79+
with:
80+
name: konflikte
81+
path: konflikte.md
82+
if-no-files-found: ignore

0 commit comments

Comments
 (0)