direct-run harness
Some checks failed
grade / grade (push) Failing after 3s

This commit is contained in:
trevon 2026-08-26 02:05:35 +00:00
parent 5a755aec6d
commit be9faedf1d

View file

@ -2,28 +2,25 @@ name: grade
on: [push] on: [push]
# Production wiring (forgejo-runner on ghost): # Production wiring (forgejo-runner on ghost):
# - forgejo-runner v13 config: docker_host: automount -> the job container # - the job container IS the grade image (grade-c:dev on the host daemon),
# gets the host docker socket, so `docker run` drives the host daemon # so the harness runs directly — no nested docker
# - the nested grade container mounts the secret + hidden tests straight from # - runner.yaml mounts /opt/grade-hidden + /opt/grade/grade.env into every
# the host (/opt/grade/grade.env, /opt/grade-hidden/...) — never in this # job container (host paths, never in this repo)
# repo, no job-container options, no Actions secrets required # - checkout uses Forgejo's native action (data.forgejo.org) for
# forgejo-runner v13
jobs: jobs:
grade: grade:
runs-on: docker runs-on: docker
container: container:
image: gitea/runner-images:ubuntu-22.04 image: grade-c:dev
steps: steps:
- uses: https://data.forgejo.org/actions/checkout@v6 - uses: https://data.forgejo.org/actions/checkout@v6
- name: Probe workspace
run: |
{ echo "PWD=$PWD"; echo "WS=${GITHUB_WORKSPACE:-unset}"; ls -la /workspace 2>&1 | head -20; ls -la /workspace/*/ 2>/dev/null | head -20; } > /workspace/PROBE.txt 2>&1 || echo "cannot write workspace" > /workspace/PROBE.txt
- name: Grade (blank fails, solved passes) - name: Grade (blank fails, solved passes)
run: | run: |
docker run --rm --network=none \ cd "$GITHUB_WORKSPACE"
-v "$PWD":/work \ set -a; . /run/secrets/grade.env; set +a
-v /opt/grade/grade.env:/run/secrets/grade.env:ro \ python3 /opt/grade/grade_cli.py run \
-v /opt/grade-hidden/cs2060/record-manager:/hidden:ro \ --student . --hidden /opt/grade-hidden/cs2060/record-manager \
-v /opt/grade/runner-diag:/diag \ --course CS2060 --assignment record-manager \
grade-c:dev \ --out results.json 2>&1 | tee /opt/grade/runner-diag/latest.log
sh -c 'set -a; . /run/secrets/grade.env; set +a; { echo "SECRET_LEN=${#GRADE_HMAC_SECRET}"; python3 /opt/grade/grade_cli.py run --student /work --hidden /hidden --course CS2060 --assignment record-manager --out /work/results.json; } 2>&1 | tee /diag/latest.log' python3 -c "import json; d=json.load(open('results.json'))['result']; print('VERDICT ok=', d['ok'], 'public=', d['tests']['public'], 'hidden=', d['tests']['hidden'])"
echo "job-step exit=$?"