Example: Gitlab CI
- build
- test
- report
- deploy
- cleanup
- Clone application from local repository
- Start application
make all - Make changes in local development stack
- (optional) Run tests in isolated local testing stack
make TEST up setup run-tests - Commit (triggers CI)
- CI builds images
- CI starts isolated stacks (by setting custom
COMPOSE_PROJECT_NAMEs) from built images and performs setup operations - CI runs tests (also acceptance tests with Selenium containers)
- CI creates reports
- CI performs cleanup of isolated stacks
- CI tags images and pushes them to a registry (if tests were successful)
Run the test suites from build scripts
$ sh build/scripts/build.sh
$ sh build/scripts/test.sh
Adjust your Dockerfile and build FROM phundament/app:production.
make build
- All images MUST BE tagged
Push to branch foo results in Docker image appsrc:foo.