Fix: GITHUB_OUTPUT und persist-credentials für Runner

This commit is contained in:
2025-11-19 13:54:43 +01:00
parent 34e44d80fb
commit 73c1f5273d

View File

@@ -0,0 +1,76 @@
name: Update Laws from RSS
on:
schedule:
# Täglich um 02:00 UTC (03:00 MEZ / 04:00 MESZ)
- cron: '0 2 * * *'
# Manueller Trigger für Tests
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Vollständige Historie für Git-Operationen
persist-credentials: true # Credentials für Push speichern
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
- name: Run update script
run: |
python3 update_laws.py
continue-on-error: true # Weiterlaufen auch bei Fehlern
- name: Convert XML to Markdown
if: success() || failure() # Immer ausführen, auch wenn Update fehlschlug
run: |
python3 xml_to_markdown.py --prod || echo "Konvertierung fehlgeschlagen oder keine Änderungen"
continue-on-error: true
- name: Configure Git
run: |
git config --global user.name 'LawGit Bot'
git config --global user.email 'bot@git.coded.law'
git config --global init.defaultBranch main
- name: Check for changes
id: check_changes
run: |
git add -A
if git diff --staged --quiet; then
echo "changed=false" >> $GITHUB_OUTPUT
echo "Keine Änderungen gefunden"
else
echo "changed=true" >> $GITHUB_OUTPUT
echo "Änderungen gefunden"
git status
fi
- name: Commit and push changes
if: steps.check_changes.outputs.changed == 'true'
run: |
git commit -m "Daily law updates from RSS - $(date +'%Y-%m-%d %H:%M:%S UTC')" || exit 0
git push origin main || echo "Push fehlgeschlagen"
- name: Summary
if: always()
run: |
echo "## Update-Zusammenfassung"
echo "- Workflow ausgeführt: $(date)"
if [ "${{ steps.check_changes.outputs.changed }}" == "true" ]; then
echo "- ✅ Änderungen wurden committed und gepusht"
else
echo "- Keine Änderungen gefunden"
fi