diff --git a/.forgejo/workflows/grade.yml b/.forgejo/workflows/grade.yml index aff2a6b..a1afe88 100644 --- a/.forgejo/workflows/grade.yml +++ b/.forgejo/workflows/grade.yml @@ -7,6 +7,8 @@ on: [push] # - the nested grade container mounts the secret + hidden tests straight from # the host (/opt/grade/grade.env, /opt/grade-hidden/...) — never in this # repo, no job-container options, no Actions secrets required +# - checkout uses Forgejo's native action (data.forgejo.org), required for +# forgejo-runner v13 jobs: grade: runs-on: docker @@ -14,9 +16,6 @@ jobs: image: gitea/runner-images:ubuntu-22.04 steps: - 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) run: | docker run --rm --network=none \ @@ -25,5 +24,5 @@ jobs: -v /opt/grade-hidden/cs2060/record-manager:/hidden:ro \ -v /opt/grade/runner-diag:/diag \ grade-c:dev \ - 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; python3 -c 'import json; d=json.load(open("/work/results.json")); r=d["result"]; print("VERDICT ok=", r["ok"], "public=", r["tests"]["public"], "hidden=", r["tests"]["hidden"])'; } 2>&1 | tee /diag/latest.log' - echo "job-step exit=$?" + 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'])"