diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..cf7e029 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,60 @@ +name: Build and Deploy + +on: + push: + branches: + - main + - dev + +jobs: + build-and-deploy: + runs-on: debian-lxc + + 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/" >> $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 \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index 508cbec..1695f14 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -5,6 +5,8 @@ import tailwindcss from '@tailwindcss/vite'; // https://astro.build/config export default defineConfig({ + site: process.env.ASTRO_SITE_URL || 'http://localhost:4321', + base: process.env.ASTRO_BASE_PATH || '/', vite: { plugins: [tailwindcss()] }