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
.
- Launch:
scriptworker [config_path]
Without integration tests install tox, then
NO_CREDENTIALS_TESTS=1 tox -e py36
Without any tests connecting to the net, then NO_TESTS_OVER_WIRE=1 tox -e py36
With integration tests, first create a client in the Taskcluster UI with the scopes:
queue:cancel-task:test-dummy-scheduler/* queue:claim-work:test-dummy-provisioner/dummy-worker-* queue:create-task:lowest:test-dummy-provisioner/dummy-worker-* queue:define-task:test-dummy-provisioner/dummy-worker-* queue:get-artifact:SampleArtifacts/_/X.txt queue:scheduler-id:test-dummy-scheduler queue:schedule-task:test-dummy-scheduler/* queue:task-group-id:test-dummy-scheduler/* queue:worker-id:test-dummy-workers/dummy-worker-*
Then generate a no priviledge personal access token in Github for the scriptworker_github_token (to avoid rate limiting) and create a ./secrets.json
or ~/.scriptworker
that looks like:
{ "integration_credentials": { "clientId": "...", "accessToken": "...", } "scriptworker_github_token": "..." }
then to run all tests: tox