The build is organised as follows:
These live at https://ci.adoptopenjdk.net/job/build-scripts/. Currently these jobs are:
** From here on in this documentation describes the 10 pipeline however it is the same for all Java versions. **
The high level sequence of each of these pipelines is shown in:
This shows a build of jdk10-mac-x64-hotspot
and jdk10-linux-x64-hotspot
. The jdk10-mac-x64-hotspot
build is expanded as
an example of how each build pipeline works, however a similar pipeline will be generated for every jdk10-<os>-<arch>-<impl>
that was requested to be built.
The actions of the pipeline are defined by openjdk10_pipeline.groovy, which calls build_base_file.groovy.
The actions of this script are:
- Read in build configuration that determines what configurations have been requested to be built.
- For each requested configuration generate a configuration that defines such things as which nodes to run the build on, optional configuration added to openjdk10_pipeline.groovy etc.
- Generate a build job for each requested configuration, these live at jdk10u
- Execute all build jobs in parallel
- Publish binaries to GitHub
These are generated using the template at create_job_from_template.groovy This defines a pipeline job that calls openjdk_build_pipeline.groovy, this script defines the work of what a Build Pipeline does.
Generated by create_job_from_template.groovy, and its work defined in openjdk_build_pipeline.groovy.
The actions of this are:
- Execute build
- Spawn requested test pipelines, these are defined in openjdk10_pipeline.groovy
- Call sign binaries job if needed
- Archive file
This is kicked off by the Build Pipeline, this involves calling make-adopt-build-farm.sh. This script defines some platform specific configuration such as operating system and architecture specific config defined in platform-specific-configurations. Then it calls make-adopt-build-farm.sh to finally invoke the build.