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

Add Reproducible Build Comparisons to Jenkins Pipelines #3245

Closed
andrew-m-leonard opened this issue Feb 8, 2023 · 8 comments
Closed

Add Reproducible Build Comparisons to Jenkins Pipelines #3245

andrew-m-leonard opened this issue Feb 8, 2023 · 8 comments
Assignees
Labels
enhancement Issues that enhance the code or documentation of the repo in any way jenkins Issues that enhance or fix our jenkins server reproducible-build secure-dev testing Issues that enhance or fix our test suites windows Issues that affect or relate to the WINDOWS OS

Comments

@andrew-m-leonard
Copy link
Contributor

andrew-m-leonard commented Feb 8, 2023

Add the ability in the ci-jenkins-pipelines to support dual build with integrated reproducible build comparison.
Only supported for certain versions: jdk-17+

The following existing toolset: https://github.com/adoptium/ci-jenkins-pipelines/tree/master/tools/reproduce_comparison
provides some tools, these need moving to temurin-build repo.
These are currently being updated/extended with some in-progress work here: https://github.com/andrew-m-leonard/openjdk-build/tree/repro_validate/tooling
note renaming of compareLinux.sh to linux_repro_build_compare.sh

Suggested solution:

@andrew-m-leonard andrew-m-leonard added enhancement Issues that enhance the code or documentation of the repo in any way reproducible-build labels Feb 8, 2023
@andrew-m-leonard andrew-m-leonard self-assigned this Feb 8, 2023
@github-actions github-actions bot added the jenkins Issues that enhance or fix our jenkins server label Feb 8, 2023
@zdtsw
Copy link
Contributor

zdtsw commented Feb 9, 2023

related to adoptium/ci-jenkins-pipelines#397

@sophia-guo
Copy link
Contributor

What is the expected results? Looking at the console output https://ci.adoptium.net/job/jdk17u-linux-x64-temurin_reproduce_compare/21/console, what issues or other steps should be taken care of ? @andrew-m-leonard

@andrew-m-leonard
Copy link
Contributor Author

andrew-m-leonard commented Jun 16, 2023

@sophia-guo So the scripts need a JDK in the PATH so they can run "jimage" and "jmod". I suggest simply unpacking "original" into a 2nd folder that you then use as a JDK in PATH, so you have 3 folders:

  1. originalJdkHome
  2. originalHome
  3. reproducedHome
    and:
    export PATH=<path to originalJdkHome>/bin:$PATH

The linux_repro_compare script takes the java home folder as the path, so I think you need to call it as:
./linux_repro_compare.sh temurin /home/jenkins/workspace/jdk17u-linux-x64-temurin_reproduce_compare/original/<jdkTag> temurin /home/jenkins/workspace/jdk17u-linux-x64-temurin_reproduce_compare/reproduced/<jdk-tag>
So you need to query the Jdk home folder.

The end results from the linux_repro_compare.sh script should be an "rc" of 0 if identical. It will also print something like:

ReproduciblePercent = 98.96 %

@sophia-guo
Copy link
Contributor

Linux enabled. https://ci.adoptium.net/job/jdk17u-linux-x64-temurin_reproduce_compare/
Platform priority order for comparison: Linux x64, Windows x64, Linux aarch64, Linux ppc64, Linux s390x, Mac x64, Mac aarch64

@sophia-guo
Copy link
Contributor

sophia-guo commented Jul 13, 2023

Aarch 64 linux adoptium/ci-jenkins-pipelines#742

errors in aarch64 reproducible comparison #3435

@sophia-guo
Copy link
Contributor

sophia-guo commented Jul 13, 2023

Linux ppc64, Linux s390x

Issues #3435

@sophia-guo
Copy link
Contributor

@sophia-guo
Copy link
Contributor

Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issues that enhance the code or documentation of the repo in any way jenkins Issues that enhance or fix our jenkins server reproducible-build secure-dev testing Issues that enhance or fix our test suites windows Issues that affect or relate to the WINDOWS OS
Projects
No open projects
Status: Done
Development

No branches or pull requests

4 participants