Deploy Website per SSH / index.html auf Webserver deployen (push) Failing after 2m26s
67 lines
3.5 KiB
YAML
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!"
|