Some checks failed
Build and Deploy / build-and-deploy (push) Failing after 8s
60 lines
2.0 KiB
YAML
60 lines
2.0 KiB
YAML
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<<EOF" >> $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<<EOF" >> $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 |