Skip to content

Setting up new build jobs, mirrors,... when a new openjdk version is branched from jdk(head)

Andrew Leonard edited this page Jun 9, 2023 · 38 revisions

Prerequistes:

Create the new adoptium mirror

  1. Request from the Eclipse Help Desk a new adoptium github repository is created:
  1. Once the new repository has been created, populate it with a mirror of the upstream openjdk repository:

git clone --mirror [email protected]:openjdk/jdkNN.git

cd jdkNN.git

git push --mirror [email protected]:adoptium/jdkNN.git

Ignore any errors attempting to push to branch "main". Verify repository populated successfully with branch "master".

  1. Delete any upstream "pr/nn" branches

  2. Clone the new adoptium repo:

git clone [email protected]:adoptium/jdkNN.git

  1. Create the "dev" branch with necessary patches:

git checkout -b dev origin/master

Apply "Adoptium" patches, "Files changed" => https://github.com/adoptium/jdk/compare/master...dev

Commit changes and push:

git push origin dev

  1. Create the "release" branch with necessary patches:

git checkout -b release origin/master

Apply "Adoptium" patches, "Files changed" => https://github.com/adoptium/jdk/compare/master...release

Commit changes and push:

git push origin release

  1. Create the skara mirror job:

bash ./skaraMirror.sh jdkNN

  1. Build the new git-skara-jdkNN job. It should now mirror any new upstream openjdk commits to master, merge with dev, and create the release branch. Verify the job completes successfully and the repository content looks correct.

  2. Raise an Eclipse Help Desk issue to change the "default" branch to "master", and to delete the "main" branch.

Ensure the temurinNN-binaries repository is created

  1. Does https://github.com/adoptium/temurinNN-binaries exist?
  2. If not create an Eclipse Help Desk issue to create a new repository using temurin18-binaries as an example for permissions.
  3. Create README.md based on https://github.com/adoptium/temurin18-binaries/README.md

Create pipeline_jobs_generator_jdkNN job and configuration

  1. Create the pipeline job configuration: https://github.com/adoptium/ci-jenkins-pipelines/tree/master/pipelines/jobs/configurations , using the previous version file contents as a basis:
  • Create jdkNN.groovy
  • Create jdkNN_pipeline_config.groovy
  • Create PR and merge
  1. Duplicate an existing job: https://ci.adoptopenjdk.net/job/build-scripts/job/utils/job/pipeline_jobs_generator_jdk17u/ and name pipeline_jobs_generator_jdkNN
  2. Change JAVA_VERSION parameter to "jdkNN"
  3. Build the pipeline_jobs_generator_jdkNN job, and ensure the new pipeline build jobs are created: https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/
  4. Replicate for the evaluation_ and release_ pipeline_jobs_generator's as well.

Run a test pipeline build

  1. Build the newly generate pipeline job : https://ci.adoptopenjdk.net/job/build-scripts/job/openjdkNN-pipeline/
  2. Verify all build successfully

Update jdk head pipeline_jobs_generator_jdk job to next head version

  1. https://ci.adoptopenjdk.net/job/build-scripts/job/utils/job/pipeline_jobs_generator_jdk/configure, update JAVA_VERSION to the new jdk(head) version.
  2. Run the updated job to update the jdk(head) build jobs

Update website-v2 to support jdkNN

  1. https://github.com/adoptium/website-v2

Update refactor_openjdk_release_tool to support jdk new head version

  1. Go to Configure for job https://ci.adoptopenjdk.net/job/build-scripts/job/release/job/refactor_openjdk_release_tool/ and add the new jdk head to the VERSION choices parameter
  2. Create an Eclipse Help Desk issue to create the new jdk head binaries repo, base on previous, eg.https://github.com/adoptium/temurin19-binaries (eg.https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/issues/1504)