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

Platform-specific reproducibility healthcheck #1146

Merged

Conversation

adamfarley
Copy link
Contributor

This change allows us to identify the latest build of a specific tagged jdk source version per platform.

Previously, we would gather results from the oldest build pipeline using a specific tagged source version.

This change allows us to re-run specific platforms, and have the latest build override the first one, while still using the builds from the original pipeline for other platforms.

This change also includes making all of our wget calls more robust, in case we use invalid key parameters for the trss api and become hung.

Resolves #1132

We now have automated reproducibility testing on 3 more platforms,
so we're checking their results as part of the daily healthcheck.

Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Currently, we use the earliest pipeline with a given tag as our
best guess at the root source of a published build.

However, if the build link is rerun by a user for specific
platforms, the original link becomes outdated, and we should
use the new link for healthchecks (but only on the affected
platform).

This change adds the per-platform logic required to do that. We may
expand the scope for this in the long run, but for now this logic
will only be used by the section of the code which identifies the
reproducibility percentages for published builds.

Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Will revert before merge.

Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
wgets to trss can hang if you're passing an invalid value, as per
aqa-test-tools issue 935. This code change allows us to treat
hangs (no response) as if the wget had returned an empty string.

Signed-off-by: Adam Farley <[email protected]>
Signed-off-by: Adam Farley <[email protected]>
@adamfarley adamfarley self-assigned this Nov 19, 2024
Copy link

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"

@github-actions github-actions bot added code-tools Issues that are miscellaneous enhancements or bugs with our utilities that assist our build scripts testing labels Nov 19, 2024
@adamfarley
Copy link
Contributor Author

adamfarley commented Nov 19, 2024

This code has been tested, and here is the output:

image

Note that the Linux x64 "?%" output is correct, as the test failed to produce a valid percentage.

So that if one of the tests fails and the upload is still successful,
we can still try to provide information on the reproducibility
test (assuming it ran at all).

Signed-off-by: Adam Farley <[email protected]>
@karianna karianna merged commit 926a185 into adoptium:master Nov 22, 2024
8 checks passed
@adamfarley
Copy link
Contributor Author

Thanks @andrew-m-leonard and @karianna 🤓

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code-tools Issues that are miscellaneous enhancements or bugs with our utilities that assist our build scripts testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Enhance the build reproducibility healthcheck scripting to identify pipelines per platform
3 participants