This is an example of a build flow automated with Žinoma.
It automates the build flow of sazzer/docker-test.
Prerequisites:
Project checkout:
git clone [email protected]:fbecart/docker-node-example.git
cd docker-node-example
zinoma e2e_docker_run
will run the full suite of e2e tests in Docker.
It should take about a minute to run the following tasks in parallel:
- build a Docker image of the backend
- build the webapp, then build a Docker image of the webapp
- build a docker image of the e2e tests
- run the e2e tests
This command is incremental. Try to run this command twice, and you'll see:
$ zinoma e2e_docker_run
INFO - backend_docker_build - Build skipped (Not Modified)
INFO - e2e_docker_build - Build skipped (Not Modified)
INFO - webapp_install_node_dependencies - Build skipped (Not Modified)
INFO - webapp_build - Build skipped (Not Modified)
INFO - webapp_docker_build - Build skipped (Not Modified)
INFO - e2e_docker_run - Build skipped (Not Modified)
This time, the command completed in about one second. As the sources files haven't been modified, Žinoma was able to understand that the test suite did not need to run again.
Let's introduce a modification to our backend and see what happens:
echo "" >> backend/index.js
zinoma e2e_docker_run
This command should have taken about 30s, which is 50% faster than a full build.
Based on the changes in the file system, Žinoma is able to discriminate which tasks to run, and which tasks to skip.
This time, it was able to skip the build of the webapp and the e2e tests, but it still had to rebuild the backend and to execute the full test suite.