name: Production Build & Deploy on: [push] # Triggert testweise bei absolut jedem Push, um die Blockade zu lösen jobs: build-and-deploy: runs-on: webserver container: image: catthehacker/ubuntu:act-latest steps: - name: Code auschecken uses: actions/checkout@v4 - name: Docker login to Gitea registry run: echo "${{ secrets.REGISTRY_TOKEN }}" | docker login gitea.hephex.de -u "${{ secrets.REGISTRY_USER }}" --password-stdin - name: Build Docker image run: | docker build -t gitea.hephex.de/daniel/ndsolutionswebsite:latest -f Dockerfile . - name: Push Docker image run: docker push gitea.hephex.de/daniel/ndsolutionswebsite:latest - name: Clean up runner Docker cache run: | docker image prune -f docker builder prune -f - name: Deploy via SSH to Debian Server uses: appleboy/ssh-action@v1.0.3 with: host: 192.168.178.164 username: ${{ secrets.PROXMOX_USER }} key: ${{ secrets.PROXMOX_SSH_KEY }} script: | mkdir -p /opt/websitedummy cd /opt/websitedummy # Schreibt die Docker Compose Datei sauber ohne Einrückung cat << 'EOF' > docker-compose.yml version: '3.8' services: website: image: gitea.hephex.de/daniel/ndsolutionswebsite:latest restart: always ports: - "8080:8080" EOF echo "${{ secrets.REGISTRY_TOKEN }}" | docker login gitea.hephex.de -u "${{ secrets.REGISTRY_USER }}" --password-stdin docker compose pull docker compose up -d docker image prune -f