Skip to content

Latest commit

 

History

History
57 lines (37 loc) · 3.04 KB

build.md

File metadata and controls

57 lines (37 loc) · 3.04 KB

Build

The build is organised as follows:

Top level pipeline jobs

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:

build sequence

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.

Top level pipeline code

The actions of the pipeline are defined by openjdk10_pipeline.groovy, which calls build_base_file.groovy.

The actions of this script are:

  1. Read in build configuration that determines what configurations have been requested to be built.
  2. 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.
  3. Generate a build job for each requested configuration, these live at jdk10u
  4. Execute all build jobs in parallel
  5. Publish binaries to GitHub

Generated build jobs

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.

Build Pipelines

Generated by create_job_from_template.groovy, and its work defined in openjdk_build_pipeline.groovy.

The actions of this are:

  1. Execute build
  2. Spawn requested test pipelines, these are defined in openjdk10_pipeline.groovy
  3. Call sign binaries job if needed
  4. Archive file

Execute build

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.