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: - /opt/blauwasser-api:/opt/blauwasser-api:rw - /opt/blauwasser-api/backend:/opt/blauwasser-api/backend:rw - /var/lib/blauwasser-api:/var/lib/blauwasser-api:rw 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: Deployment-Ziel prüfen run: | id ls -ld /opt ls -ld /opt/blauwasser-api ls -ld /opt/blauwasser-api/backend - 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: | rsync -a --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