This is an optional way to develop on crowbar-ui
within a contained environment. The main benefit is to have some reusable and host-independent environment to develop on.
-
make sure
docker
is installed and thedocker
daemon is running.for installation details see: https://docs.docker.com/engine/installation/
-
build the image from the Dockerfile:
docker build -t crowbar-ui .
- run the container (
pwd
should be your git clone):
docker run -d --name "crowbar-ui_container" -v $(pwd)/assets:/crowbar-ui/assets -v $(pwd)/routes:/crowbar-ui/routes -p 3000:3000 crowbar-ui
- work on the assets folder in your local git clone and the changes will be immediately visible in the browser.
also if you are changing the
./routes
directory the server inside the container gets restarted bynodemon
docker exec -ti crowbar-ui_container npm test
1 - Clone the app from GitHub:
[email protected]:crowbar/crowbar-ui.git
2 - Locate yourself into the recently created folder:
cd crowbar-ui
Make sure you have Node.js installed in your machine with NPM, if not, please proceed to install it before continuing with the following steps. (more info: https://nodejs.org/en/download/)
3 - Let npm install all the needed packages:
npm install
4 - Some packages, like gulp, needs to be installed globally to be available through the console. Let's install them:
sudo npm install -g gulp
5 - You will need to have Bower installed globally in your machine:
npm install -g bower
6 - Let bower fetch all our dependencies:
NODE_ENV=production bower install
7 - Let Gulp build the public folder for your assets (it will keep watching for changes, so yes, after this, you are ready to start making changes in the front-end), note that this will exit with a warning if cloud.config.json is missing (it will continue to run if NODE_ENV
is not set to production):
NODE_ENV=production gulp
8 - Update the tested_step
variable in routes/api/upgrade.js
depending on the scenario you want to test. This is used to properly fill the mocked status API response.
9 - Run the server at http://localhost:3000 with (you will need to restart it every time you make changes in the backend, but not in the layout or front-end in general):
NODE_ENV=production npm start
1 - Everytime you update master from new PR merged into it, make sure you have all the latest libraries from package.json by running
npm install
2 - and then, in a new terminal:
bower install && gulp
to compile all your assets again and leave it watching your changes.
The most up to date source of setup information is .travis.yml
in the base folder, as this builds/runs the test suite and must be up to date. Check there first if you encounter any issues with running the build locally
:)