Task is the input for slaves. This is a directory with at least: * code.tar, code-revision.txt, code-version.txt Compressed tarball of the code you have to test. As a rule that should be some kind of "git archive" output. Text files accompany it with human readable version and revision (commit hash) information. * steps.tar, steps-revision.txt, steps-version.txt Same as above, but archive contains the steps your slave has to perform. Steps is a bunch of lexicographically ordered executable files. Task's directory name has several fields: NUM:PROJ:VERSION:ARCH[:HOST]. Optional HOST can be used to force job run on a specified host. NUM is constantly increasing number, some kind of unique identifier of the tasks. $TASKS directory has four subdirectories: * ctr/ -- atomically incrementing counter state * tmp/ -- temporary storage for newly creating tasks, moved to cur/ after * cur/ -- ready to be taken tasks * old/ -- archived tasks, non-taken or completed