name: Build and Deploy Backend on: push: branches: - main paths: - "backend/**" - "pyproject.toml" - "uv.lock" - ".forgejo/workflows/deploy_backend.yml" jobs: build_and_deploy: runs-on: roadrunner container: volumes: - /var/www/astro-app:/var/www/astro-app steps: - name: Deployment-Werkzeuge installieren run: | apt-get update apt-get install -y --no-install-recommends rsync - name: Umgebung prüfen run: | id cat /etc/os-release echo "$PATH" command -v python3 || true command -v node || true command -v rsync || true - name: Repository auschecken uses: actions/checkout@v4 # - name: Backend testen # working-directory: backend # run: | # python3 -m pip install --upgrade pip # python3 -m pip install -e . # python3 -m pytest - name: Backend kopieren run: | touch /var/www/test rsync -a --no-perms --no-owner --no-group --delete \ --exclude '.venv' \ --exclude '__pycache__' \ --exclude '*.db' \ backend/ /opt/blauwasser-api/backend/ cp pyproject.toml /opt/blauwasser-api/ cp uv.lock /opt/blauwasser-api/ - name: Abhängigkeiten aktualisieren run: | cd /opt/blauwasser-api uv sync --frozen - name: Backend neu starten run: | systemctl restart blauwasser-api systemctl is-active --quiet blauwasser-api - name: Deployment prüfen run: | curl --fail https://api.blauwasser-mausis.de/health