A worker for TaskCluster, written in go.
This is our next generation worker, that has a pluggable architecture for adding support for new engines (think Docker™ engine, Windows™ native engine, OS X™ native engine, KVM™/Xen™ engine) and adding engine-independent plugins (think livelogs, caches/volumes, auth proxies, interactive ssh/vnc).
See https://docs.taskcluster.net/reference/workers/taskcluster-worker/docs/architecture
See https://github.com/taskcluster/taskcluster-worker/releases
- Install go 1.8 or higher
go get -u -t -d github.com/taskclustertaskcluster-worker/...
cd "${GOPATH}/src/github.com/taskcluster-worker"
go get -u github.com/kardianos/govendor
govendor sync
make rebuild
make rebuild
Certain tests are disabled by default because they are:
- only runs under certain conditions (e.g. requires root credentials),
- requires special configuration (for example secret tokens),
- have system-wide side-effects (like deleting the $HOME folder), or,
- very slow, noisy or needs fixing.
Tests that fall into one or more of these categories are enabled with build tags. Below is a list of such build tags and description of what they test and why these tests are disabled by default.
localtunnel
, tests aWebHookServer
implementation based on localtunnel.me, tests are somewhat buggy and due to the nature of using a remote service this isn't reliable.native
, tests the native-engine, disabled because tests cleans up system folders such as HOME.qemu
, tests qemu-engine, disabled because it requires QEMU installed and needs to run as root (run tests with./docker-tests.sh
).network
, tests network configuration for qemu-engine, disabled because it can leave the system in a dirty state and requires root (run tests with./docker-tests.sh
).monitor
, tests sentry reporting, statsum submission and logging, requires credentials to run successfully.
Simply create a tag, and push to github.
git tag v1.0.3
git push --tags
You need govendor to manage vendor dependencies.
govendor sync
go get <package>
govendor add +external
git add vendor/vendor.json
git commit -m 'My new package.'
go get -u -t ./... # update versions
govendor update
We welcome Pull Requests and Issues!
Find us in #taskcluster-worker
on irc.mozilla.org