26 lines
1.1 KiB
YAML
26 lines
1.1 KiB
YAML
name: grade
|
|
on: [push]
|
|
|
|
# Production wiring (forgejo-runner on ghost):
|
|
# - the job container IS the grade image (grade-c:dev on the host daemon),
|
|
# so the harness runs directly — no nested docker
|
|
# - runner.yaml mounts /opt/grade-hidden + /opt/grade/grade.env into every
|
|
# job container (host paths, never in this repo)
|
|
# - checkout uses Forgejo's native action (data.forgejo.org) for
|
|
# forgejo-runner v13
|
|
jobs:
|
|
grade:
|
|
runs-on: docker
|
|
container:
|
|
image: grade-c:dev
|
|
steps:
|
|
- uses: https://data.forgejo.org/actions/checkout@v6
|
|
- name: Grade (blank fails, solved passes)
|
|
run: |
|
|
cd "$GITHUB_WORKSPACE"
|
|
set -a; . /run/secrets/grade.env; set +a
|
|
python3 /opt/grade/grade_cli.py run \
|
|
--student . --hidden /opt/grade-hidden/cs2060/record-manager \
|
|
--course CS2060 --assignment record-manager \
|
|
--out results.json 2>&1 | tee /opt/grade/runner-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'])"
|