name: Build and Deploy on: push: branches: - main - dev jobs: build-and-deploy: runs-on: debian-latest steps: - name: Repository auschecken uses: actions/checkout@v4 - name: Abhängigkeiten installieren run: npm ci # --- BRANCH-SPEZIFISCHE VARIABLEN SETZEN --- - name: Konfiguration für Produktiv (main) if: github.ref == 'refs/heads/main' run: | echo "ASTRO_SITE_URL=https://iten.pro" >> $GITHUB_ENV echo "ASTRO_BASE_PATH=/" >> $GITHUB_ENV echo "TARGET_PATH=~/htdocs/" >> $GITHUB_ENV echo "DEPLOY_USER=${{ secrets.PROD_SSH_USERNAME }}" >> $GITHUB_ENV echo "DEPLOY_KEY<> $GITHUB_ENV echo "${{ secrets.PROD_SSH_PRIVATE_KEY }}" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV - name: Konfiguration für Test (dev) if: github.ref == 'refs/heads/dev' run: | echo "ASTRO_SITE_URL=https://home.iten.pro" >> $GITHUB_ENV echo "ASTRO_BASE_PATH=/test" >> $GITHUB_ENV echo "TARGET_PATH=/var/www/pages/test" >> $GITHUB_ENV echo "DEPLOY_USER=${{ secrets.DEV_SSH_USERNAME }}" >> $GITHUB_ENV echo "DEPLOY_KEY<> $GITHUB_ENV echo "${{ secrets.DEV_SSH_PRIVATE_KEY }}" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV # --- BUILD UND DEPLOYMENT --- - name: Astro Build ausführen run: npm run build # Der Build-Prozess nutzt nun automatisch die oben gesetzten ASTRO_* Variablen - name: SSH-Umgebung vorbereiten run: | mkdir -p ~/.ssh echo "$DEPLOY_KEY" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ssh-keyscan -p 22 ssh.netzone.ch >> ~/.ssh/known_hosts - name: Deploy via rsync run: | # Nutzt die dynamischen Variablen für User und Zielpfad rsync -avz --delete -e "ssh -p 22 -i ~/.ssh/deploy_key" dist/ $DEPLOY_USER@ssh.netzone.ch:$TARGET_PATH