0.1.3 • Published 4 months ago

cpta v0.1.3

Weekly downloads
-
License
AGPL-3.0
Repository
github
Last release
4 months ago

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 (/tmp and /workspace)
    • Read-only root filesystem, write to /tmp and /workspace only
  • Mount files into workspace
    • Mount files before build
    • Mount files before execution
  • Flexible file-based case system
    • Config exec.js to execute target
    • Define spec.js to evaluate result
  • Generate report from results
    • Generate spreadsheet report with students.csv

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.js

Usage

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 report

Dive into workspaces in container

cpta dive
0.1.3

4 months ago

0.1.2

5 months ago

0.1.1

5 months ago

0.1.0

6 months ago

0.0.1

6 months ago

0.0.0

6 months ago