name: Build and Test on: push: branches: [master, main] pull_request: branches: [master, main] workflow_dispatch: jobs: test-backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Install core + server + dev deps (in venv) run: | python -m venv .venv . .venv/bin/activate python -m pip install --upgrade pip python -m pip install -e ./packages/core python -m pip install -e "./packages/server[dev]" - name: Run pytest (server) run: | . .venv/bin/activate cd packages/server pytest -q --maxfail=1 test-frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Node uses: actions/setup-node@v4 with: node-version: "22" cache: "npm" cache-dependency-path: frontend/package-lock.json - name: Install deps run: | cd frontend npm ci - name: Svelte check run: | cd frontend npm run check || echo "::warning::svelte-check reported warnings" - name: Build run: | cd frontend npm run build build-image: needs: [test-backend, test-frontend] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build Docker image (no push) uses: docker/build-push-action@v5 with: context: . push: false tags: notify-bridge:ci-${{ gitea.sha }} cache-from: type=gha cache-to: type=gha,mode=max