Scriptworker implements the TaskCluster worker model, then launches a pre-defined script.
This worker was designed for Releng processes that need specific, limited, and pre-defined capabilities.
Free software: MPL2 license
- Create a config file. By default scriptworker will look in
./scriptworker.yaml
, but this config path can be specified as the first and only commandline argument. There is an example config file, and all config items are specified in scriptworker.constants.DEFAULT_CONFIG.
Credentials can live in ./scriptworker.yaml
, ./secrets.json
, ~/.scriptworker
, or in environment variables: TASKCLUSTER_ACCESS_TOKEN
, TASKCLUSTER_CLIENT_ID
, and TASKCLUSTER_CERTIFICATE
.
- Launch:
scriptworker [config_path]
First, create a secrets.json. For integration testing, you'll need to define the integration_credentials; to do any other authenticated work, you'll need to define credentials.
Then:
PY_DOT_VERSION=3.7 # or 3.6
docker build -t scriptworker-test-$PY_DOT_VERSION --build-arg PY_DOT_VERSION=$PY_DOT_VERSION --file docker/Dockerfile.test .
Without integration tests, install tox, then
NO_CREDENTIALS_TESTS=1 tox -e py36
Without any tests connecting ot the net, then
NO_TESTS_OVER_WIRE=1 tox -e py36
With integration tests, first create a client with the scopes:
assume:project:taskcluster:worker-test-scopes
queue:cancel-task:test-dummy-scheduler/*
Then create a ./secrets.json
or ~/.scriptworker
that looks like:
{
"integration_credentials": {
"clientId": "...",
"accessToken": "...",
"certificate": "..."
}
}
(certificate
is only specified if using temp creds)
then
tox
It's also possible to test in docker. First, build the docker image, making sure to add integration credentials to secrets.json. Then:
docker run -i scriptworker-test-$PY_DOT_VERSION