name: grade on: [push] # Production wiring (forgejo-runner on ghost): # - forgejo-runner v13 config sets docker_host: automount (host socket into # the job container), so docker_grade.sh drives the host daemon as designed # - hidden tests mount from the runner host (/opt/grade-hidden) — never in # this repo # - GRADE_HMAC_SECRET mounts from /opt/grade/grade.env on the runner host jobs: grade: runs-on: docker container: image: gitea/runner-images:ubuntu-22.04 options: >- -v /opt/grade/grade.env:/run/secrets/grade.env:ro -v /opt/grade-hidden:/opt/grade-hidden:ro steps: - uses: actions/checkout@v4 - name: Grade (blank fails, solved passes) run: | set -a; . /run/secrets/grade.env; set +a docker run --rm --network=none \ -v "$PWD":/work \ -v /opt/grade-hidden/cs2060/record-manager:/hidden:ro \ -e GRADE_HMAC_SECRET \ grade-c:dev \ python3 /opt/grade/grade_cli.py run \ --student /work --hidden /hidden \ --course CS2060 --assignment record-manager \ --out /work/results.json echo "--- signed result summary ---" head -c 400 results.json