Skip to content

Stop repeated LHP decisions and queue starvation #107

Stop repeated LHP decisions and queue starvation

Stop repeated LHP decisions and queue starvation #107

Workflow file for this run

# .github/workflows/ci.yml for AS215932/engineering-loop
#
# Runs on the UNPRIVILEGED ci-pr runner (label hyrule-public-pr, runner group
# public-pr). The loop's backend executes generated code, so this repo must
# NEVER be added to the privileged hyrule-ci group or the hyrule/hyrule-infra
# runner. Required checks for branch protection on main: ruff, mypy, pytest.
#
# The ci-pr runner has no uv preinstalled; each job installs it via the astral
# script and calls it at ~/.local/bin (matching the hyrule-web CI convention).
---
name: ci
on:
pull_request:
branches: [main]
push:
branches: [main]
permissions:
contents: read
jobs:
ruff:
runs-on: [self-hosted, linux, x64, hyrule-public-pr]
steps:
- uses: actions/checkout@v6
- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: ruff
run: ~/.local/bin/uvx ruff check src tests
mypy:
runs-on: [self-hosted, linux, x64, hyrule-public-pr]
steps:
- uses: actions/checkout@v6
- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: mypy --strict
run: ~/.local/bin/uv run --group dev mypy --strict src
pytest:
runs-on: [self-hosted, linux, x64, hyrule-public-pr]
steps:
- uses: actions/checkout@v6
- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: pytest
# HYRULE_MOCK_LLM defaults on; the suite runs fully offline with the
# MockBackend and never invokes a real harness binary or provider.
# TMPDIR=/tmp so pytest's tmp_path lands under /tmp: the worktree
# tests render NOC handoffs there, and the policy guard's
# allowed_handoff_dirs is ["/tmp"]. The runner's default TMPDIR is
# not /tmp, which would otherwise fail those tests on the handoff
# allowlist while passing locally.
run: TMPDIR=/tmp ~/.local/bin/uv run --group dev python -m pytest -q
evals:
runs-on: [self-hosted, linux, x64, hyrule-public-pr]
steps:
- uses: actions/checkout@v6
- name: Install uv
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: private evals
# Offline, deterministic domain-judgment suite; no model, no network.
# Captures AS215932 token capital and blocks regressions in CI.
run: ~/.local/bin/uv run --group dev hyrule-engineering-loop evals run --strict