Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enabling a new DevKit build job and support use within pipeline configuration #955

Merged
merged 134 commits into from
Mar 28, 2024

Conversation

andrew-m-leonard
Copy link
Contributor

@andrew-m-leonard andrew-m-leonard commented Mar 4, 2024

Create a ci-jenkins-pipelines "Build DevKit" job to build gcc Linux based DevKits https://openjdk.org/groups/build/doc/building.html
These jobs perform:

  1. Clone the required openjdk source containing the "make/devkit" make files
  2. patch the Tools.gmk to enable building Centos7 based DevKit's required by Eclipse Adoptium to build Temurin.
  3. Tools.gmk patch also add GPG download verification
  4. binutils-2.39.patch makefile patch required to enable building on Centos7
  5. Builds the DevKit...
  6. GPG Signs the compressed archive
  7. Performs a "Publish DevKit" "DryRun" - Which can then be re-run to actually publish if required to https://github.com/adoptium/devkit-binaries/releases

DevKit jobs using this PR actively building DevKits for jdk21+ gcc 11.3.0 x64/aarch64/ppc64le linux : https://ci.adoptium.net/job/build-scripts/job/utils/job/devkit/job/gcc-11.3.0/

openjdk_build_pipeline support for DevKit in jdk21+:

  1. Use user openjdk build directory, so that debug symbol folders are mapped reproducibly
  2. Ensure build/devkit folder is cleaned as part of post-build workspace build output clean

Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
@andrew-m-leonard andrew-m-leonard self-assigned this Mar 4, 2024
@andrew-m-leonard andrew-m-leonard marked this pull request as draft March 4, 2024 09:32
Copy link

github-actions bot commented Mar 4, 2024

Thank you for creating a pull request!

Please check out the information below if you have not made a pull request here before (or if you need a reminder how things work).

Code Quality and Contributing Guidelines

If you have not done so already, please familiarise yourself with our Contributing Guidelines and Code Of Conduct, even if you have contributed before.

Tests

Github actions will run a set of jobs against your PR that will lint and unit test your changes. Keep an eye out for the results from these on the latest commit you submitted. For more information, please see our testing documentation.

In order to run the advanced pipeline tests (executing a set of mock pipelines), it requires an admin to post run tests on this PR.
If you are not an admin, please ask for one's attention in #infrastructure on Slack or ping one here.
To run full set of tests, use "run tests"; a subset of tests on specific jdk version, use "run tests quick 11,21"

Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
@andrew-m-leonard
Copy link
Contributor Author

run tests

@eclipse-temurin-bot
Copy link
Collaborator

 PR TESTER RESULT 

✅ All pipelines passed! ✅

@sxa
Copy link
Member

sxa commented Mar 25, 2024

Looking at the previous sha256.txt file the filename in there has a workspace/ prefix which makes it more difficult to use sha256sum -c. Can we remove the workspace prefix when it's generated?

This is a similar issue to the one for the windows 32-bit JDK8 builds from adoptium/temurin-build#3662

@andrew-m-leonard
Copy link
Contributor Author

Looking at the previous sha256.txt file the filename in there has a workspace/ prefix which makes it more difficult to use sha256sum -c. Can we remove the workspace prefix when it's generated?

This is a similar issue to the one for the windows 32-bit JDK8 builds from adoptium/temurin-build#3662

yep, will do

Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Signed-off-by: Andrew Leonard <[email protected]>
Copy link
Member

@sxa sxa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel the build dir changes might have been better in a separate PR for ease of review.
I'm approving based on the fact I've run some of these jobs as part of the s390x testing and they appear to work :-) Some extra changes will be required for RHEL support but they will need to wait a bit pending some decisions on which environments to use Ref: adoptium/temurin-build#3700

One question: Shat were the reasons for changing the binutils patch to not use doc explcitly?

EDIT: I'm really thinking it would be preferable to have a top level directory inside the devkit tarballs

@andrew-m-leonard
Copy link
Contributor Author

I feel the build dir changes might have been better in a separate PR for ease of review. I'm approving based on the fact I've run some of these jobs as part of the s390x testing and they appear to work :-) Some extra changes will be required for RHEL support but they will need to wait a bit pending some decisions on which environments to use Ref: adoptium/temurin-build#3700

One question: Shat were the reasons for changing the binutils patch to not use doc explcitly?

EDIT: I'm really thinking it would be preferable to have a top level directory inside the devkit tarballs

Thank you @sxa
binutils patch is a known binutils bug for Centos7 : https://sourceware.org/bugzilla/show_bug.cgi?id=29476

I think the devkit tarball structure I wanted to keep simple, without having to handle arch folder renaming/..

@andrew-m-leonard andrew-m-leonard merged commit e297546 into adoptium:master Mar 28, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aarch documentation jenkins-pipeline linux reproducible-build x64 Issues that affect or relate to the x64/x32 LINUX OS
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants