Files
ndsolutionswebsite/.gitea/workflows/deploy.yml

58 lines
1.9 KiB
YAML

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
services:
website:
image: gitea.hephex.de/daniel/ndsolutionswebsite:latest
restart: always
ports:
- "8080:4321"
environment:
- HOST=0.0.0.0
- PORT=4321
- DATA_DIR=/app/data
volumes:
- ./app/data:/app/data
EOF
echo "${{ secrets.REGISTRY_TOKEN }}" | docker login gitea.hephex.de -u "${{ secrets.REGISTRY_USER }}" --password-stdin
docker compose pull
docker compose up -d