This page documents the Logging Services Jenkins pipelines that automatically builds, tests, and publishes snapshots of commits pushed to both the
release-2.x branches of Log4j as well as the master branches of Log4j Audit, Log4j Scala API, Log4j Kotlin API, Chainsaw, and the parent POM.
The pipelines for these projects are all centralized in the logging-pipelines git repository. Most of the pipelines simply use Java 8 plus Maven 3 on an Ubuntu node. The Log4j pipeline additionally targets Windows nodes to maintain platform independent testing of more complex features.
In order to deploy snapshots to repository.apache.org, each of the Ubuntu nodes are equipped with the appropriate Maven settings file so that running
mvn deploy will use the correct credentials to upload said snapshot. This does not apply to SBT, however, so there is a custom user token configured in the Logging folder with the credentials ID "logging-snapshots" which is configured in the Log4j Scala API pipeline to inject into environment variables as expected by the SBT build script.
No credentials are required to interface with gitbox URLs (unlike GitHub ones which would require us to set up some sort of access token). There is a Jenkins plugin at Apache that we use to integrate with the push notifications from gitbox to support more efficient CI.
For notifications of build failures and fixes, the Email Extension plugin is used here which offers some neat predefined email templates.