Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Sets up a consistent environment for evaluating programming packages.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 4.2.2, ~> 4.2.0
>= 1.29.1
>= 1.2.6, ~> 1.2
~> 0.9.1
 Project Readme

No Maintenance Intended

Coursemology 2 now runs code evaluations directly and no longer needs an external evaluator. See this issue.

Coursemology Code Evaluator Build Status

Code Climate Coverage Status Security Inline docs Gem Version

This is the evaluator program which will query Coursemology for pending evaluation jobs.

Setting up the Evaluator Slave

System Requirements

  1. Ruby (>= 2.1.0)
  2. Linux (tested on Ubuntu 14.04)
  3. Docker (the user the evaluator runs as must be able to talk to the Docker Remote API endpoint)

Getting Started

  1. Install the gem

    $ gem install coursemology-evaluator
  2. Modify .env to suit your environment. Point to the host to your Coursemology instance, and specify the API email and API key.

    1. You might need to configure a new user on your Coursemology instance, enable token authentication, and grant the auto_grader system/instance permission.
  3. Start the evaluator using the Procfile. You can use foreman or any similar tool to generate system scripts for boot.

Command Line Options

Compulsory Options

  1. --host: Coursemology host to connect to
  2. --api-user-email: User with autograder flag set
  3. --api-token: Authentication token of the user

Optional Options

Time options are expected to be strings in ISO8601 format.

  1. --interval: Time interval between checks for programming allocations. As this time is expected to be short, specify it with the time components of ISO8601 only. (Hours, minutes, seconds) The time designator T must be left out.

  2. --lifetime: Length of time to cache Docker images. This is expected to be in the order of days. If more granularity is needed, the time designator is required.

E.g. 1DT2H5M10S

  1. --one-shot: Runs once and terminates. Primarily used for testing.

  2. --sleep: Length of time to sleep before the first check for programming allocations. This time is expected to be short and has the same restrictions as those for --interval.

Useful for staggering the start times of multiple processes when managed with systemd.