This repository contains a collection of useful tools for use with TaskCluster. Generally, we strive to not add UI to TaskCluster components, but instead offer well documented APIs that can be easily consumed using a client library for TaskCluster. See TaskCluster documentation site for details.
- Node version v6+
git clone https://github.com/taskcluster/taskcluster-tools.git
cd taskcluster-tools
npm install
src/
(Tools source code)src/<app>/
(application specific-code, can be reused)
Building this project uses neutrino,
neutrino-preset-react,
and the src/tools-preset
to:
- Compile ES2015+ syntax to ES5-compatible JS
- Compile React JSX to de-sugared JS
- Show ESLint errors during development, and both errors and warnings when building
- Build application directories into page-specific bundles
- LESS files to CSS
Install npm dependencies and start it up:
- npm install
- npm start
This will start a local development server on port 9000 (http://localhost:9000).
Any ESLint errors across the project will be displayed in the terminal during development.
npm start
: the default development build, watchessrc/
, and serves onhttp://localhost:9000/
npm run build
: buildssrc/
into abuild/
directory
It's possible that when building a larger project like taskcluster-tools that Node.js will run out
of memory for the amount of files being built during development. As a workaround, instead of
running npm start
, run the following to run the same command with more memory:
PORT=9000 node --max-old-space-size=4096 node_modules/.bin/neutrino start -p tools-preset
Until someone comes up with something better, which probably involves Redux or similar, all testing is manual. Open the tools and check that they work. :)
Ngrok allows you to expose a web server running on your local machine to the internet. Ngrok is used creating an https connection, so that you can login to the taskcluster-tools. For using ngrok:
- Create an account (free) on ngrok.
- Install ngrok - npm install ngrok
- Run ngrok - ngrok http 9000
Note: You have to run ngrok in a separate terminal/console.