Files
girlsday2026/.gitea/workflows/deploy.yml
T
Andreas Martin ff04008a8c
Deploy Website per SSH / index.html auf Webserver deployen (push) Failing after 2m26s
Init commit
2026-04-23 11:46:58 +02:00

67 lines
3.5 KiB
YAML

name: Deploy Website per SSH
# Auslöser: Bei jedem Push auf den main-Branch
on:
push:
branches:
- main
workflow_dispatch: # ermöglicht manuelles Starten über die Gitea-Oberfläche
jobs:
deploy:
name: index.html auf Webserver deployen
runs-on: ubuntu-latest
steps:
# ─────────────────────────────────────────────
# 1. Repository auschecken
# ─────────────────────────────────────────────
- name: 📥 Repository klonen
uses: actions/checkout@v4
# ─────────────────────────────────────────────
# 2. SSH-Key einrichten
# ─────────────────────────────────────────────
- name: 🔑 SSH-Key vorbereiten
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H -p ${{ secrets.SSH_PORT }} ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
# ─────────────────────────────────────────────
# 3. Verbindung testen (optional, aber empfohlen)
# ─────────────────────────────────────────────
- name: 🔌 SSH-Verbindung testen
run: |
ssh -p ${{ secrets.SSH_PORT }} \
-i ~/.ssh/id_rsa \
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} \
"echo '✅ SSH-Verbindung erfolgreich' && hostname && date"
# ─────────────────────────────────────────────
# 4. index.html per SCP kopieren
# ─────────────────────────────────────────────
- name: 📤 index.html auf Server kopieren
run: |
scp -P ${{ secrets.SSH_PORT }} \
-i ~/.ssh/id_rsa \
./index.html \
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEPLOY_PATH }}/index.html
# ─────────────────────────────────────────────
# 5. Berechtigungen auf dem Server setzen (optional)
# ─────────────────────────────────────────────
- name: 🔧 Dateirechte anpassen
run: |
ssh -p ${{ secrets.SSH_PORT }} \
-i ~/.ssh/id_rsa \
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} \
"chmod 644 ${{ secrets.DEPLOY_PATH }}/index.html && ls -lah ${{ secrets.DEPLOY_PATH }}/"
# ─────────────────────────────────────────────
# 6. Erfolgsmeldung
# ─────────────────────────────────────────────
- name: ✅ Deployment abgeschlossen
run: echo "🎉 index.html wurde erfolgreich nach ${{ secrets.SSH_HOST }}:${{ secrets.DEPLOY_PATH }} deployed!"