LabTS is the Department of Computing's Laboratory Testing System.
It provides continuous automated testing support for the department's programming exercises.
The diagram below shows how the main LabTS server, its satellite testing-client fleet, students' git repositories and the surrounding departmental services fit together:
LabTS Workflow:
Students commit from their own local git repositories to GitLab; every push fires a webhook that reports the commit to the LabTS server, while students separately use the LabTS web UI to browse their repository, request a test run and submit work. The Rails server holds exercise, repository and result state in PostgreSQL, looks up class rosters and submission deadlines from TeachDB and Scientia over REST, and hands test-run jobs to whichever machine in its small fleet of Docker-based testing-client VMs is free, which then post results back.