Examples#
All commands below invoke the uoabot wrapper, which drives the fetcher and
the grader. Run them from the install root, with <homework> matching a directory under hw/ and <student> the student’s GitHub username.
uoabot [-h|--homework <str>] [-s|--single <str>] [--grade] [--fetch]
[--specific <str>] [-f] [-t] [--force_tests] [--force_repos]
[-m|--mirror] [-p|--purge] [--purge_mir] [-n|--no_log]
[-c|--config <path>]
Single repository#
-s always goes together with -h, which the wrapper needs to resolve the
homework directory. a bare student name is automatically prefixed with
<homework>-:
uoabot -h hw0 -s hw0-aliquot # fetch + grade one repo
uoabot -h hw0 -s aliquot # same. the homework prefix is added automatically
uoabot -h hw0 -s hw0-aliquot --fetch # fetch only, no grading
uoabot -h hw0 -s hw0-aliquot --grade # grade the already-fetched repo
Batch mode (whole homework)#
uoabot -h hw0 # fetch + grade every repo of hw0
uoabot -h hw0 --fetch # fetch all repos, skip grading
uoabot -h hw0 --grade # grade all fetched repos, skip fetching
uoabot -h hw0 -t # fetch only the shared test files
uoabot -h hw0 -f # force re-pull of all repos and tests
uoabot -h hw0 --force_tests # force re-pull of test files only
uoabot -h hw0 --force_repos # force re-pull of student repos only
Batch mode processes every repository of the homework and prints a summary of total, succeeded, failed and skipped repos. Mirrors are skipped.
Partial grading#
uoabot -h hw0 -s hw0-aliquot --specific Pr1_suite # run one suite
uoabot -h hw0 -s hw0-aliquot --specific compilation # run one category
uoabot -h hw0 -s hw0-aliquot --specific test_5 # run one test
--specific runs the named suite, category or test together with its
non-suppressible dependencies.
Mirrors and purging#
uoabot -h hw0 -s hw0-aliquot --mirror # Copy the repo as ...-mirror1, -mirror2, ...
uoabot -h hw0 -s hw0-aliquot --purge_mir # delete all snapshots of the repo
uoabot -h hw0 -s hw0-aliquot -p # delete the repo's entire local data
A mirror is a numbered copy the instructor can freely edit and grade specifically, without touching the real submission.
Other options#
uoabot -h hw0 -n # disable persistent file logging
uoabot -c /opt/uoabot/system.json -h hw0 # explicit system config path
uoabot -h hw0 --grade --force_repos # fetch flags are ignored in --grade mode
The system config defaults to ./system.json in the working directory. -c overrides it.