ci-jenkins-pipelines icon indicating copy to clipboard operation
ci-jenkins-pipelines copied to clipboard

Update Adoptium #build daily Slack status with Reproducible build results

Open andrew-m-leonard opened this issue 1 year ago • 3 comments

TRSS now has a "Rebuild_Same_JDK_Reproducibility_Test_0", which reports a "Reproducibility %" : https://trss.adoptium.net/deepHistory?testId=66b48b8dd24e1b006eaa48d5

We should add a new line to the #build daily Slack status reporting the latest EA reproducibility for the reproducible versions and platforms. So currently:

  • jdk21u : x64Linux, aarch64Linux, ppc64leLinux, x64Windows, x64Mac, aarch64Mac

Status script: https://github.com/adoptium/ci-jenkins-pipelines/blob/master/tools/nightly_build_and_test_stats.groovy

Comparing /home/user/jdk-21.0.4+7 with /cygdrive/c/workspace/openjdk-build/workspace/build/openjdkbuild/images/jdk ... output to file: reprotest.diff
Number of differences: 0
ReproduciblePercent = 100 %

andrew-m-leonard avatar Aug 08 '24 13:08 andrew-m-leonard

I've been working on this task in the repository branch here.

I've set up a temporary jenkins job here to test it as I go along.

The results are sent to my Slack Member ID as a direct message, to avoid swamping the build channel.

Example of last successful output: image

This was using dummy percentages, for the sake of testing the formatting.

I'm currently fixing bugs in the percentage parsing code.

adamfarley avatar Sep 12 '24 15:09 adamfarley

Update: The code works! We now gather the correct percentages from the correct locations.

Intentionally untested comparable builds that will be tested in the future are labelled "NA".

The output is as depicted below. I'm working with Andrew Leonard to refine the output to make it smaller and most useful.

Pending tasks:

  • [x] To remove the NA builds from the Slack output.
  • [x] To replace NA in the breakdown (part of the groovy jenkins job output) with something more useful.
  • [x] To replace "good" and "bad" with a list of platforms + percentages (? % if no percentage available).
  • [x] To remove the hard-coded specific-pipeline TRSS URL, and re-test.
    • I did this to make sure I'm testing the new code with a pipeline that ran tests.

Also, I've added the ability for us to specify different test names + locations by platform.

https://github.com/adoptium/temurin-build/blob/master/test/system/reproducibleCompare/playlist.xml

image

adamfarley avatar Sep 16 '24 15:09 adamfarley

Ok, the final changes are in and proven to work.

A PR has been raised here: https://github.com/adoptium/ci-jenkins-pipelines/pull/1113

adamfarley avatar Sep 17 '24 09:09 adamfarley

PR 1113 is fully functional.

We have identified a good next step for this enhancement, and that work will be progressed in another issue here: https://github.com/adoptium/ci-jenkins-pipelines/issues/1132

adamfarley avatar Oct 31 '24 15:10 adamfarley