A shared library with some vitamins to help you to speed up your local development.
This is an example of a shared library for the Jenkins pipelines based on:
- JCasC to configure a local jenkins instance.
- JobDSL to configure the pipelines to test the steps.
- JenkinsUnitPipeline to test the shared library steps.
- Spock to test the shared library steps with some specifications approach.
- Gradle to orchestrate the build/tests of this library.
- Vagrant and VirtualBox to spin up jenkins agents using the Swarm connection.
- Docker >= 19.x.x
- Docker Compose >= 1.25.0
- Vagrant >= 2.2.4
- VirtualBox >= 6
- Java >= 8
(root)
+- src # Groovy source files
| +- org
| +- v1v
| +- Bar.groovy # for org.v1v.Bar class
| +- test
| +- groovy
| +- FooStepTest.groovy # Tests for the foo step
+- vars
| +- foo.groovy # for global 'foo' variable
| +- foo.txt # help for 'foo' variable
+- resources # resource files (external libraries only)
| +- org
| +- v1v
| +- bar.json # static helper data for org.foo.Bar
+- local # to enable a jenkins instance with this library
| +- configs
| +- jenkins.yaml
| +- plugins.txt
| +- workers
| +- linux
| +- Vagrantfile
| +- docker-compose.yml
| +- Dockerfile
|
./gradlew clean test
open build/reports/tests/test/index.html
-
Build docker image by running:
make -C local build
-
Start the local Jenkins master service by running:
make -C local start
-
Browse to http://localhost:8080 in your web browser.
make -C local start-local-worker
make -C local start-linux-worker
You can configure this jenkins instance as you wish, if so please change:
- local/configs/jenkins.yaml using the JCasC
- local/configs/plugins.txt
- Be able to programmatically run functional tests.