Skip to content

Enable cgroup controllers in the parent before creating child cgroups #4

Enable cgroup controllers in the parent before creating child cgroups

Enable cgroup controllers in the parent before creating child cgroups #4

Workflow file for this run

name: e2e resource-ceiling matrix
# Dispatcher: the matrix is generated from tests/e2e/scenarios.py's registry
# via `--emit-matrix` (grouped by setup profile), never hand-enumerated here.
# Adding a scenario to the registry is a one-row edit -- no workflow file
# needs to change (design: "the matrix is generated from the registry").
#
# Deliberately excluded combinations (criterion 13 -- considered, not
# forgotten; full reasons live in tests/e2e/scenarios.py::EXCLUSIONS):
# - Linux containers (docker/podman) on a macOS runner: no nested
# virtualization on GH-hosted macOS runners (actions/runner-images #13505,
# closed not-planned, Jan 2026).
# - Linux containers or Hyper-V-isolated Windows containers on a Windows
# runner: neither WSL2 nor Hyper-V is enabled on GH-hosted Windows runners.
# - Any container of any kind on macOS: Apple's own `container` CLI hits the
# identical nested-virtualization restriction.
# - Any macOS scenario asserting a hard, enforced CPU-affinity ceiling:
# thread_policy_set is scheduler-advisory only, never a hard constraint.
on:
push:
pull_request:
workflow_dispatch:
jobs:
# The only job in this workflow that is meant to be, and stay, green: the
# registry-integrity oracle, the composed-minimum math, the composition/argv
# regressions, the CALIBRATION.md-vs-registry cross-check, and the workflow
# lint (138+ tests across tests/unit) never depend on a docker/cgroup2/
# systemd/Windows/macOS runtime, so they run unconditionally on every push
# and PR -- unlike the e2e jobs below, which are expected to be red until
# the real sensor implementation lands. This job must never gain
# `continue-on-error` or any other soft-fail wrapper: with the e2e jobs
# permanently red by design, this is the only signal a broken registry edit
# or composition regression has to surface at all.
unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install -e ".[test]"
- run: python -m pytest tests/unit -v
emit-matrix:
runs-on: ubuntu-latest
outputs:
linux: ${{ steps.matrix.outputs.linux }}
macos: ${{ steps.matrix.outputs.macos }}
windows: ${{ steps.matrix.outputs.windows }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install -e ".[test]"
- id: matrix
shell: bash
run: |
python -m tests.e2e.scenarios --emit-matrix > matrix.json
python - <<'PY' >> "$GITHUB_OUTPUT"
import json
data = json.load(open("matrix.json"))
for family in ("linux", "macos", "windows"):
print(f"{family}={json.dumps(data[family])}")
PY
linux:
needs: emit-matrix
if: needs.emit-matrix.outputs.linux != '[]'
uses: ./.github/workflows/e2e-linux.yml
with:
profiles: ${{ needs.emit-matrix.outputs.linux }}
macos:
needs: emit-matrix
if: needs.emit-matrix.outputs.macos != '[]'
uses: ./.github/workflows/e2e-macos.yml

Check failure on line 79 in .github/workflows/e2e.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/e2e.yml

Invalid workflow file

error parsing called workflow ".github/workflows/e2e.yml" -> "./.github/workflows/e2e-macos.yml" (source branch with sha:74b2a4b67d0aa03f707cd8d2c2d3190f8fe088dc) : (Line: 34, Col: 14): Unexpected symbol: '"'. Located at position 35 within expression: join(matrix.profile.scenario_ids, " or ")
with:
profiles: ${{ needs.emit-matrix.outputs.macos }}
windows:
needs: emit-matrix
if: needs.emit-matrix.outputs.windows != '[]'
uses: ./.github/workflows/e2e-windows.yml
with:
profiles: ${{ needs.emit-matrix.outputs.windows }}