...
- Nightly build is configured to get fresh source code from Git Repository, compile, build and deploy to application servers. We are using JBoss and embedded wildfly application servers to do deployments. Build is configured to run every day at midnight.
- We use Maven, as build tool to build the code, run different goals and specific plugins.
- By default, a maven build will run profiles which are configured to run when no profiles are passed but we can particular profiles - like PD, AD, X12, DR explicitly enabled/disabled. Explicit profiles can be enabled as command line argument to maven commandusing the -P flag.
- Maven builds are highly configurable and we can pass different pom file and configure the path, JVM options and settings file to build the profile.
- We currently keep the last 10 last builds for history purposepurposes, including all the build artifacts from the build itself.
- We also publish push analysis results for findbugs SonarQube and dependency-check source code quality checks.
- We are using shell commands for:
- For using Git to get fresh repo code ( git checkout CONNECT, git pull, git clean -dfx ).
- For cleaning up earlier deployed directories ( rm -rf $WORKSPACE/.repository/*, cp ../settings.xml ).
- For connecting to JBoss application server machine and deploying source code for that application server.
- For calling other scripts in order to clean up, start, undeploy and stop servers.
- An experimental plugin called "Warnings Next Generation" to aggregate Findbugs, Sonar, Java, and Checkstyle issues into a single viewable report on the nightly jenkins job.
Issues and Resolutions
...