Payload Format


Docker worker payload (source)

.payload field of the queue.

Docker image.One of

Image to use for the task. Images can be specified as an image tag as used by a docker registry, or as an object declaring type and name/namespace

string
Object of
typestring
  • docker-image
namestring
Object of
typestring
  • indexed-image
namespacestring
pathstring
Object of
typestring
  • task-image
taskIdstring
pathstring
cacheObject of

Caches are mounted within the docker container at the mount point specified. Example: { "CACHE NAME": "/mount/path/in/container" }

Anything ¯\_(ツ)_/¯
capabilitiesObject of

Set of capabilities that must be enabled or made available to the task container Example: { "capabilities": { "privileged": true }

privilegedboolean

Allows a task to run in a privileged container, similar to running docker with --privileged. This only works for worker-types configured to enable it.

devicesObject of

Allows devices from the host system to be attached to a task container similar to using --device in docker.

loopbackVideoboolean

Video loopback device created using v4l2loopback.

loopbackAudioboolean

Audio loopback device created using snd-aloop

phoneObject of

Phone device that will be created using Testdroid

typestring

Phone device type. Example: 'flame'

simsstring

Number of sims to be available in the device

buildstring

URL for the build the phone has been (or will be) flashed with

memorystring

The memory configuration the device to be configured with

commandArray of
default:

Example: ['/bin/bash', '-c', 'ls'].

string
encryptedEnvArray of

List of base64 encoded asymmetric encrypted environment variables. See https://docs.taskcluster.net/manual/execution/workers/docker-worker#encrypted-environment-variables

Base64 encoded encrypted environment variable object.string
envObject of

Example: { "PATH": '/borked/path' "ENV_NAME": "VALUE" }

Anything ¯\_(ツ)_/¯
maxRunTimenumber[1:86400]

Maximum time the task container can run in seconds

onExitStatusObject of

By default docker-worker will fail a task with a non-zero exit status without retrying. This payload property allows a task owner to define certain exit statuses that will be marked as a retriable exception.

retryArray of

If the task exists with a retriable exit status, the task will be marked as an exception and a new run created.

Exit statusesnumber
graphsArray of

Contents of file are used to extend the graph (if this task was part of a graph). See https://docs.taskcluster.net/reference/platform/scheduler/api-docs#extendTaskGraph

Individual path to graph extension point.string
artifactsObject of

Artifact upload map example: {"public/build.tar.gz": {"path": "/home/worker/build.tar.gz", "expires": "2016-05-28T16:12:56.693817Z", "type": "file"}}

typestring
  • file
  • directory
pathstring
expiresstringdate-time
supersederUrlstringurl
featuresObject of

Used to enable additional functionality.

localLiveLogboolean

Logs are stored on the worker during the duration of tasks and available via http chunked streaming then uploaded to s3

azureLiveLogboolean

Useful for situations where it is impossible to reach the worker and parsing the azure livelog is possible

bulkLogboolean

Useful if live logging is not interesting but the overalllog is later on

taskclusterProxyboolean

The auth proxy allows making requests to taskcluster/queue and taskcluster/scheduler directly from your task with the same scopes as set in the task. This can be used to make api calls via the client CURL, etc... Without embedding credentials in the task.

testdroidProxyboolean
balrogVPNProxyboolean

The Balrog proxy feature allows tasks to make requests to http://balrog which is a proxied connection through a vpn tunnel to production balrog update server.

artifactsboolean
extendTaskGraphboolean

The .graphs property in payload allows specifying paths which if present will be used to extend the task graph (Keeping it alive) this can be used for dynamic tests, bisections, any dynamic tasks, etc...

dindboolean

Runs docker-in-docker and binds /var/run/docker.sock into the container. Doesn't allow privileged mode, capabilities or host volume mounts.

relengAPIProxyboolean

The Releng API proxy service allows tasks to talk to releng api using an authorization token based on the task's scopes

dockerSaveboolean

Uploads docker images as artifacts

interactiveboolean

This allows you to interactively run commands inside the container and attaches you to the stdin/stdout/stderr over a websocket. Can be used for SSH-like access to docker containers.

allowPtraceboolean

This allows you to use the Linux ptrace functionality inside the container; it is otherwise disallowed by Docker's security policy.