This commit is contained in:
parent
67952240f8
commit
ac8d1b6379
1 changed files with 15 additions and 17 deletions
|
|
@ -2,27 +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, no node-dependent actions
|
||||||
# - the nested grade container mounts the secret + hidden tests straight from
|
# - the workflow clones the repo itself with Forgejo's built-in token
|
||||||
# the host (/opt/grade/grade.env, /opt/grade-hidden/...) — never in this
|
# (GITHUB_TOKEN / FORGEJO_TOKEN) — the automatic token has read access
|
||||||
# repo, no job-container options, no Actions secrets required
|
# - runner.yaml mounts /opt/grade-hidden + /opt/grade/grade.env into every
|
||||||
# - checkout uses Forgejo's native action (data.forgejo.org), required for
|
# job container (host paths, never in this repo)
|
||||||
# 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
|
|
||||||
- name: Grade (blank fails, solved passes)
|
- name: Grade (blank fails, solved passes)
|
||||||
run: |
|
run: |
|
||||||
docker run --rm --network=none \
|
rm -rf /tmp/work && mkdir -p /tmp/work && cd /tmp/work
|
||||||
-v "$PWD":/work \
|
git clone -q --depth 1 "https://x:${GITHUB_TOKEN:-$FORGEJO_TOKEN}@git.trevon.dev/${GITHUB_REPOSITORY}.git" .
|
||||||
-v /opt/grade/grade.env:/run/secrets/grade.env:ro \
|
set -a; . /run/secrets/grade.env; set +a
|
||||||
-v /opt/grade-hidden/cs2060/record-manager:/hidden:ro \
|
python3 /opt/grade/grade_cli.py run \
|
||||||
-v /opt/grade/runner-diag:/diag \
|
--student . --hidden /opt/grade-hidden/cs2060/record-manager \
|
||||||
grade-c:dev \
|
--course CS2060 --assignment record-manager \
|
||||||
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'
|
--out results.json 2>&1 | tee /opt/grade/runner-diag/latest.log || true
|
||||||
python3 -c "import json; d=json.load(open('results.json'))['result']; print('VERDICT ok=', d['ok'], 'public=', d['tests']['public'], 'hidden=', d['tests']['hidden'])"
|
python3 -c "import json,sys; d=json.load(open('results.json'))['result']; print('VERDICT ok=', d['ok'], 'public=', d['tests']['public'], 'hidden=', d['tests']['hidden']); sys.exit(0 if d['ok'] else 1)"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue