name: CI on: push: pull_request: # Manual re-run, e.g. after rotating a credential or raising a budget cap. workflow_dispatch: jobs: checks: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install uv run: | curl -LsSf https://astral.sh/uv/install.sh | sh echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Sync workspace run: uv sync --all-packages - name: Lint run: uv run ruff check . - name: Format check run: uv run ruff format --check . - name: Unit tests run: uv run pytest -m "not integration" - name: Integration tests # Live-path credentials come from repo Actions secrets; the tests # skip-guard on these, so a missing secret or unreachable service # degrades to "skipped", never a failure on unrelated work. env: NISSE_LLM_BASE_URL: ${{ secrets.NISSE_LLM_BASE_URL }} NISSE_LLM_TOKEN: ${{ secrets.NISSE_LLM_TOKEN }} NISSE_ROLE_EXECUTOR: ${{ secrets.NISSE_ROLE_EXECUTOR }} NISSE_LIVE_PLANNER_MODEL: ${{ secrets.NISSE_LIVE_PLANNER_MODEL }} NISSE_MATRIX_HOMESERVER: ${{ secrets.NISSE_MATRIX_HOMESERVER }} NISSE_MATRIX_USER_ID: ${{ secrets.NISSE_MATRIX_USER_ID }} NISSE_MATRIX_TOKEN: ${{ secrets.NISSE_MATRIX_TOKEN }} NISSE_MATRIX_TEST_ROOM_ID: ${{ secrets.NISSE_MATRIX_TEST_ROOM_ID }} NISSE_GITEA_URL: ${{ secrets.NISSE_GITEA_URL }} NISSE_GITEA_TOKEN: ${{ secrets.NISSE_GITEA_TOKEN }} NISSE_GITEA_TEST_REPO: ${{ secrets.NISSE_GITEA_TEST_REPO }} run: uv run pytest -m integration -rs