Build Result Format

Whether you are using the command line runner, or making API calls directly, ClusterRunner will return a tarball containing all of the build artifacts upon build completion.

This tarball not only contains the build artifacts explicitly placed in $ARTIFACT_DIR in your clusterrunner.yaml file, but also some files generated by ClusterRunner that provide useful information about your build.

If you're using a CI tool to process your build results, it's unlikely you'll need to interact with these build results manually.

Directory Structure

Once you have untarred the build result, you will be presented with a list of directories that begin with the prefix artifact_, as well as possibly a single file named failures.txt.

drwxr-xr-x  user  group  artifact_0_0
drwxr-xr-x  user  group  artifact_0_1
drwxr-xr-x  user  group  artifact_0_2
drwxr-xr-x  user  group  artifact_1_0
drwxr-xr-x  user  group  artifact_1_1
drwxr-xr-x  user  group  artifact_2_0
...
-rw-r--r--  user  group  failures.txt

Ignore the numbered suffixes–that is an implementation detail you don’t need to worry about.

The artifact directory

There will be one artifact directory for each atom of work that was generated in the atomizers section of your clusterrunner.yaml file.

Delving into one of these directories, you will see four files generated for you by ClusterRunner, as well as any build artifacts you dropped into $ARTIFACT_DIR. All ClusterRunner-generated filenames are prefixed by the string clusterrunner_.

-rw-r--r--  user  group  clusterrunner_command
-rw-r--r--  user  group  clusterrunner_console_output
-rw-r--r--  user  group  clusterrunner_exit_code
-rw-r--r--  user  group  clusterrunner_time
-rw-r--r--  user  group  result.xml

In this example, a single build artifact was generated during the build for this atom as $ARTIFACT/result.xml.

The contents of the four generated files are easy to guess by their names.

File Description

clusterrunner_command

The generated shell command that was executed to produce this result. This comes in handy when a test fails and you want to reproduce the failure by hand.

clusterrunner_console_output

The stdout and stderr output from running this test.

clusterrunner_exit_code

The exit code the test exited with.

clusterrunner_time

The number of seconds it took for this test to complete.

The failures.txt file

If every test execution completes with an exit code of 0, then the failures.txt file will not exist in the build artifact you get returned. In other cases however, this file will contain the artifact_ directory names of all tests that exited with a non-zero exit code.

Lets say you completed a build with two tests that failed. In that scenario, your failures.txt file may look as such:

artifact_21_4
artifact_54_1

You would then inspect the artifact_21_4/ and artifact_54_1/ directories for the console output and any build-specific artifacts to either debug the tests, or report the errors to the appropriate source.