Fix: Workflow an Gitea Actions Runner anpassen (docker container, gitea.token, apt python3)

This commit is contained in:
2026-02-20 13:52:51 +01:00
parent 1effdfdf4c
commit 269e05bc01

View File

@@ -9,90 +9,62 @@ on:
jobs: jobs:
update: update:
runs-on: ubuntu-latest runs-on: docker
container:
image: node:20-bookworm
steps: steps:
- name: Configure Git - name: Install system dependencies
run: | run: |
apt-get update
apt-get install -y python3 python3-pip git
git config --global user.name 'LawGit Bot' git config --global user.name 'LawGit Bot'
git config --global user.email 'bot@git.coded.law' git config --global user.email 'bot@git.coded.law'
git config --global init.defaultBranch main git config --global init.defaultBranch main
git config --global http.postBuffer 524288000 git config --global http.postBuffer 524288000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 0
- name: Checkout repository - name: Checkout repository
run: | run: |
git clone --depth=1 https://git.coded.law/${{ github.repository }}.git . git clone --depth=1 https://lawgit-bot:${{ gitea.token }}@git.coded.law/${{ gitea.repository }}.git .
git remote set-url origin https://git.coded.law/${{ github.repository }}.git
git fetch --unshallow || true git fetch --unshallow || true
- name: Set up Python - name: Install Python dependencies
run: | run: |
python3 --version pip install --break-system-packages -r requirements.txt
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Upgrade pip in venv
pip install --upgrade pip
# Make venv available for all steps
echo 'source venv/bin/activate' >> $GITHUB_ENV
- name: Install dependencies
run: |
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
- name: Run update script - name: Run update script
run: | run: |
source venv/bin/activate
# Erstelle laws Verzeichnis falls es nicht existiert
mkdir -p laws mkdir -p laws
python update_laws.py python3 update_laws.py
continue-on-error: true # Weiterlaufen auch bei Fehlern continue-on-error: true
- name: Convert XML to Markdown - name: Convert XML to Markdown
if: success() || failure() # Immer ausführen, auch wenn Update fehlschlug if: always()
run: | run: |
source venv/bin/activate
# Erstelle laws Verzeichnis falls es nicht existiert
mkdir -p laws mkdir -p laws
# Prüfe ob laws Verzeichnis existiert und nicht leer ist
if [ -d "laws" ] && [ "$(ls -A laws 2>/dev/null)" ]; then if [ -d "laws" ] && [ "$(ls -A laws 2>/dev/null)" ]; then
python xml_to_markdown.py --prod || echo "Konvertierung fehlgeschlagen oder keine Änderungen" python3 xml_to_markdown.py --prod || echo "Konvertierung fehlgeschlagen oder keine Änderungen"
else else
echo "Info: laws Verzeichnis ist leer oder existiert nicht, überspringe Konvertierung" echo "Info: laws Verzeichnis ist leer, überspringe Konvertierung"
fi fi
continue-on-error: true continue-on-error: true
- name: Check for changes - name: Commit and push changes
id: check_changes
run: | run: |
git add -A git add -A
if git diff --staged --quiet; then if git diff --staged --quiet; then
echo "changed=false" >> $GITHUB_OUTPUT
echo "Keine Änderungen gefunden" echo "Keine Änderungen gefunden"
else else
echo "changed=true" >> $GITHUB_OUTPUT echo "Änderungen gefunden:"
echo "Änderungen gefunden"
git status git status
git commit -m "Update laws from RSS - $(date +'%Y-%m-%d %H:%M:%S UTC')"
git remote set-url origin https://lawgit-bot:${{ gitea.token }}@git.coded.law/${{ gitea.repository }}.git
timeout 600 git push --progress origin main 2>&1 || echo "Push fehlgeschlagen oder Timeout"
fi fi
- name: Commit and push changes
if: steps.check_changes.outputs.changed == 'true'
run: |
git commit -m "Update laws from RSS - $(date +'%Y-%m-%d %H:%M:%S UTC')" || exit 0
# Push with timeout (10 minutes max) and progress output
timeout 600 git push --progress origin main 2>&1 || echo "Push fehlgeschlagen oder Timeout"
- name: Summary - name: Summary
if: always() if: always()
run: | run: |
echo "## Update-Zusammenfassung" echo "## Update-Zusammenfassung"
echo "- Workflow ausgeführt: $(date)" echo "- Workflow ausgeführt: $(date)"
if [ "${{ steps.check_changes.outputs.changed }}" == "true" ]; then echo "- Python: $(python3 --version)"
echo "- OK: Änderungen wurden committed und auf main gepusht" echo "- Git: $(git --version)"
else
echo "- Info: Keine Änderungen gefunden"
fi