fixed workflow (2)
All checks were successful
Deploy to Pages (via spiped & base64) / deploy (push) Successful in 18s

This commit is contained in:
2026-02-01 19:17:09 +01:00
parent 715ae336f8
commit 3856322b6c

View File

@@ -1,4 +1,4 @@
name: Deploy to Pages name: Deploy to Pages (via spiped & base64)
on: on:
push: push:
branches: [main] branches: [main]
@@ -11,17 +11,30 @@ jobs:
- name: Checkout Code - name: Checkout Code
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: SSH Key einrichten - name: Tools installieren
run: |
sudo apt-get update
sudo apt-get install -y rsync openssh-client spiped
- name: SSH & spiped Keys einrichten
run: | run: |
mkdir -p ~/.ssh mkdir -p ~/.ssh
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_ed25519 chmod 700 ~/.ssh
# SSH Privat-Key (Text-basiert)
echo "${{ secrets.DEPLOY_SSH_KEY }}" | tr -d '\r' > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519
# Host zu bekannten Hosts hinzufügen, um Bestätigungsdialog zu vermeiden
ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts # spiped Key (Base64 dekodieren zu Binär)
echo "${{ secrets.SPIPED_KEY }}" | base64 -d > ~/.ssh/spipe.key
chmod 600 ~/.ssh/spipe.key
- name: Deploy via rsync - name: Deploy via rsync
run: | run: |
# Erstellt den Zielordner falls er fehlt und kopiert die Dateien # --exclude sorgt dafür, dass nur die Webseite übertragen wird
# Wir nutzen -e ssh um den eben angelegten Key zu verwenden rsync -avz --delete \
rsync -avz --delete -e "ssh -i ~/.ssh/id_ed25519" \ --exclude ".git/" \
--exclude ".gitea/" \
--exclude ".gitignore" \
-e "ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o 'ProxyCommand=spipe -t %h:8022 -k ~/.ssh/spipe.key'" \
./ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/data/pages/pages/rclone-app/ ./ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/data/pages/pages/rclone-app/