- CloudBees Jenkins Team Master and Agent(s) run as Docker containers
- Agents can be spawned and destroyed dynamically
- All executors support Maven and Docker Pipeline
This demo requires that you have Docker and Maven installed.
Open a terminal at this repo location and run cp .sample.env .env to create local file called .env based on the sample. Then modify .env to make it specific to your environment. You should only need to touch USER_M2 and the DockerHub API Key (from http://cloud.docker.com), all others may remain as-is.
Finally, run make to let Docker do its thing.
NOTE: If any configuration files are modified, like jenkins.yaml, plugins.txt, or /init.groovy.d/*.groovy, then run make again to build new images.
To start CJT, run docker-compose up. Logs will be streamed to the console, and CJT can be stopped with ^c. Alternatively you can run CJT detached using docker-compose up -d, access logs with docker logs cjt, and stop using docker-compose down.
You may then access CJT at http://localhost:9090 and complete the Getting Started wizard.
To start Agent(s), run make agent. To stop all Agents, run make stop. To build a new agent image after making changes, run make agent-build.
To clean up images, run make clean.
NOTE: Swarm Agents require a user with appropriate permissions to connect to CJT. The default is admin/admin and you can change it in your .env if necessary.
Thanks to the Configuration as Code Plugin, demos are built in!
A Sample Rest Server project is configured out of the box, which uses Pipeline Shared Libraries as a form of templating.
Sample Rest Server requires a Sonar server to function properly. Run make sonar to launch one then access it at http://localhost:9000 to see that it's running and view test results.
An ASP.Net Core App project is also configured out of the box. Note that this pipeline has an "approval" step that requires a human to approve.