name: CI on: push: branches: [master] pull_request: jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: https://github.com/astral-sh/setup-uv@v5 with: python-version: "3.12" - run: uv sync - run: uv run pytest web/tests/ -x -q -p no:faulthandler - run: uv run ruff check web/src/ web/tests/ # Creates a v{YYYYMMDDHHMM} tag after tests pass on master. # The on-server supervisor polls for new tags every 60s and deploys # automatically. No SSH keys or deploy credentials needed in CI. tag: needs: [test] runs-on: ubuntu-latest if: github.ref == 'refs/heads/master' steps: - uses: actions/checkout@v4 with: token: ${{ github.token }} - name: Create and push tag run: | git config user.name "CI" git config user.email "ci@noreply" TAG="v$(date -u +%Y%m%d%H%M)" git tag "$TAG" git push origin "$TAG"