0.1.3 • Published 2 years ago
cpta v0.1.3
CPTA
TA Kit for Computer Programming.
Features
- Compile and Run code in sandbox
- Network isolation (no internet access)
- Limit CPU usage (1 core)
- Limit memory usage (1GB)
- Limit disk usage (
/tmpand/workspace) - Read-only root filesystem, write to
/tmpand/workspaceonly
- Mount files into workspace
- Mount files before build
- Mount files before execution
- Flexible file-based case system
- Config
exec.jsto execute target - Define
spec.jsto evaluate result
- Config
- Generate report from results
- Generate spreadsheet report with
students.csv
- Generate spreadsheet report with
File Structure
.
├── .works
| └── <student-id>
| ├── 0-raw
| ├── 1-build
| ├── 2-output
| └── 3-result
├-- .build
| └── mount
| └ ... (files to be mounted before build)
└── .cases
└── <case-name>
├── mount
| └ ... (files to be mounted before execution)
├── exec.js
└── spec.jsUsage
Create workspace from Moodle archive
cpta from-moodle <moodle-archive> --output [output-dir]output-dir defaults to ./.works.
Build all workspaces
cpta make --workspace [workspaces-dir]workspaces-dir defaults to ./.works.
Execute all targets in workspaces
cpta exec --workspace [workspaces-dir] --case [cases-dir]workspaces-dir defaults to ./.works.
cases-dir defaults to ./.cases.
Evaluate all targets in workspaces
cpta eval --workspace [workspaces-dir] --case [cases-dir]workspaces-dir defaults to ./.works.
cases-dir defaults to ./.cases.
Make report from workspaces
cpta reportDive into workspaces in container
cpta dive