Skip to content

catlee/scriptworker

 
 

Repository files navigation

Scriptworker Readme

image

image

Documentation Status

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

Usage

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]

Building a docker image

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 .

Testing

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

About

Minimal taskcluster worker for releng-oriented tasks

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.8%
  • Other 0.2%