diff --git a/workflows/authelia.yaml b/workflows/authelia.yaml new file mode 100644 index 0000000..6212f2a --- /dev/null +++ b/workflows/authelia.yaml @@ -0,0 +1,74 @@ +name: Authelia Update Check + +on: + push: + workflow_dispatch: + inputs: + args: + description: 'Argumente für das Script' + required: false + default: '' + schedule: + - cron: '0 4 * * *' # Täglich um 4 Uhr morgens + +jobs: + check-and-notify: + runs-on: ubuntu-latest # Oder dein eigener Gitea-Runner + + steps: + - name: SSH Execution and Logic + id: ssh_step + uses: appleboy/ssh-action@v1.0.3 + with: + host: 10.0.4.18 + username: root + password: ${{ secrets.PASSWORD_AUTHELIA }} + port: 22 + # Wir übergeben die UI-Inputs oder leere Strings + envs: ARGS + env: + ARGS: ${{ github.event.inputs.args }} + script: | + fetch -o /tmp/authelia-update.sh https://git.familie-berner.de/Open/infra-maintenance/raw/branch/main/authelia/authelia-update.sh + chmod +x /tmp/authelia-update.sh + + set +e + timeout 10m /tmp/authelia-update.sh $ARGS + EXIT_CODE=$? + set -e + + case $EXIT_CODE in + 0) MSG="✅ Update erfolgreich / Alles aktuell" ;; + 10) MSG="ℹ Update verfügbar, aber nicht angewendet" ;; + 64) MSG="❌ Fehler: Ungültige Parameter" ;; + 69) MSG="🌐 Fehler: Netzwerk/GitHub nicht erreichbar" ;; + 70) MSG="📂 Fehler: Authelia Binary nicht gefunden" ;; + 72) MSG="↩ Fehler: Kein Backup gefunden" ;; + 75) MSG="🔥 KRITISCH: Dienst startet nicht!" ;; + *) MSG="❓ Unbekannter Fehler (Code: $EXIT_CODE)" ;; + esac + + # Der Trick für Gitea Actions: Wir schreiben den Text in den GITHUB_OUTPUT + echo "status_msg=$MSG" >> $GITHUB_OUTPUT + echo "exit_code=$EXIT_CODE" >> $GITHUB_OUTPUT + + # Wenn es ein echter Fehler ist (>10), lassen wir den Step fehlschlagen + if [ $EXIT_CODE -ne 0 ] && [ $EXIT_CODE -ne 10 ]; then exit $EXIT_CODE; fi + + - name: Matrix Notification + # Läuft immer, auch wenn der SSH-Step fehlschlägt + if: always() + uses: s3rj1k/matrix-action@v2 + with: + template: | + ### Authelia Update Bericht + **Status:** ${{ steps.ssh_step.outputs.status_msg || 'Build abgebrochen' }} + **Event:** `${{ github.event_name }}` + **Build:** [#${{ github.run_number }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) + + **Details:** + Exit-Code: `${{ steps.ssh_step.outputs.exit_code }}` + server: 'https://matrix.familie-berner.de' + room_id: ${{ secrets.ROOMID_MATRIX }} + user_id: ${{ secrets.USERID_MATRIX }} + password: ${{ secrets.PASSWORD_MATRIX }} \ No newline at end of file