test_deploy/.forgejo/workflows/deploy.yml
Gunnar Magholder b5ab29256d
All checks were successful
Build and Deploy / deploy (push) Successful in 17s
Fix: use tar pipe instead of rsync bc node:20 has no rsync
2026-03-05 16:18:34 +01:00

39 lines
1 KiB
YAML

name: Build and Deploy
on:
push:
branches:
- main
jobs:
deploy:
runs-on: docker
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H 194.163.164.113 >> ~/.ssh/known_hosts
- name: Deploy to server
env:
APP_NAME: ${{ vars.APP_NAME }}
DOMAIN: ${{ vars.DOMAIN }}
run: |
SERVER="root@194.163.164.113"
DEPLOY_PATH="/opt/apps/${APP_NAME}"
# Verzeichnis vorbereiten
ssh $SERVER "mkdir -p ${DEPLOY_PATH}"
# Alle Dateien kopieren (tar verwenden für Effizienz)
tar --exclude='.git' --exclude='.forgejo' -czf - . | ssh $SERVER "cd ${DEPLOY_PATH} && tar -xzf -"
# Anwendung deployen
ssh $SERVER "cd ${DEPLOY_PATH} && docker compose up -d --build --force-recreate"
echo "Deployed to https://${DOMAIN}"