Skip to content

Commit

Permalink
Platform-specific reproducibility healthcheck (#1146)
Browse files Browse the repository at this point in the history
* Adding platforms to reproducibility healthcheck

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]>

* Adding tolerance for decimal point

Signed-off-by: Adam Farley <[email protected]>

* Typo fix

* Syntax fix

Signed-off-by: Adam Farley <[email protected]>

* Fixing the regex

Signed-off-by: Adam Farley <[email protected]>

* Fixing variable content loss

Signed-off-by: Adam Farley <[email protected]>

* Fixing another regex

Signed-off-by: Adam Farley <[email protected]>

* Typo fix

Signed-off-by: Adam Farley <[email protected]>

* Fixing Linter concerns

Signed-off-by: Adam Farley <[email protected]>

* Alternative rounding method to solve Jenkins' MathContext aversion

Signed-off-by: Adam Farley <[email protected]>

* Changing method of rounding down

Signed-off-by: Adam Farley <[email protected]>

* Removing banned method

Signed-off-by: Adam Farley <[email protected]>

* Making sure we use the latest build repro info during healthcheck

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]>

* Swapping paranthesis with curley braces

Signed-off-by: Adam Farley <[email protected]>

* Continues should be changed to returns if used inside lambdas

Signed-off-by: Adam Farley <[email protected]>

* Adding useful debug messages

Signed-off-by: Adam Farley <[email protected]>

* More debug output

Signed-off-by: Adam Farley <[email protected]>

* Point repro healthcheck at the correct build.

Signed-off-by: Adam Farley <[email protected]>

* Resolving conflict and fixing typo

Signed-off-by: Adam Farley <[email protected]>

* Renaming variable

Signed-off-by: Adam Farley <[email protected]>

* Adapting contains call to map API

Signed-off-by: Adam Farley <[email protected]>

* Adding white space tolerance to 100 percent check

Signed-off-by: Adam Farley <[email protected]>

* Adding debug output

Signed-off-by: Adam Farley <[email protected]>

* Debug messages

* Switching nodes to try and get faster performance

Will revert before merge.

Signed-off-by: Adam Farley <[email protected]>

* Fixing typos

Signed-off-by: Adam Farley <[email protected]>

* Changing node

* Debug output

Signed-off-by: Adam Farley <[email protected]>

* Trimming string

Signed-off-by: Adam Farley <[email protected]>

* Expanding range of nodes to be used for execution

Signed-off-by: Adam Farley <[email protected]>

* Resetting label

Signed-off-by: Adam Farley <[email protected]>

* Fixing method signature

Signed-off-by: Adam Farley <[email protected]>

* Debug output

Signed-off-by: Adam Farley <[email protected]>

* Adjusting debug messages

Signed-off-by: Adam Farley <[email protected]>

* Removing lambdas

Signed-off-by: Adam Farley <[email protected]>

* Removing another lambda

Signed-off-by: Adam Farley <[email protected]>

* Restructuring error checking

Signed-off-by: Adam Farley <[email protected]>

* Debug message

Signed-off-by: Adam Farley <[email protected]>

* debug

Signed-off-by: Adam Farley <[email protected]>

* Changing structure to prevent syntax problem

Signed-off-by: Adam Farley <[email protected]>

* debug

Signed-off-by: Adam Farley <[email protected]>

* To ensure accuracy when some platforms are subsets of other platforms

Like how alpine-linux contains the string linux.

Signed-off-by: Adam Farley <[email protected]>

* debug

Signed-off-by: Adam Farley <[email protected]>

* Bracket mislaid - fixing

Signed-off-by: Adam Farley <[email protected]>

* Switching for loop styles

Because the previous kind doesn't appear to work, unsure why.

Signed-off-by: Adam Farley <[email protected]>

* Removing reference to restricted job

Signed-off-by: Adam Farley <[email protected]>

* Removing legacy code

Signed-off-by: Adam Farley <[email protected]>

* Moving platformKeys scope to allow wider usage

Signed-off-by: Adam Farley <[email protected]>

* Adding tests check

Signed-off-by: Adam Farley <[email protected]>

* Typo

Signed-off-by: Adam Farley <[email protected]>

* Regex fix

Signed-off-by: Adam Farley <[email protected]>

* Adjusting regex and adding debug

Signed-off-by: Adam Farley <[email protected]>

* Swapping out regex

Signed-off-by: Adam Farley <[email protected]>

* Removing superfluous check

Signed-off-by: Adam Farley <[email protected]>

* Better debug messages and a test tag

Signed-off-by: Adam Farley <[email protected]>

* Changing tag for testing

Signed-off-by: Adam Farley <[email protected]>

* Removing lambdas and getting test output data from trss

Signed-off-by: Adam Farley <[email protected]>

* Removing another lambda

Signed-off-by: Adam Farley <[email protected]>

* Correcting variable name

Signed-off-by: Adam Farley <[email protected]>

* Making sure that a missing buildOutputId can be worked around

Signed-off-by: Adam Farley <[email protected]>

* Removing static method use

Signed-off-by: Adam Farley <[email protected]>

* Removing legacy code.

* Removing redundant command

Signed-off-by: Adam Farley <[email protected]>

* Adding check for blank test output

Signed-off-by: Adam Farley <[email protected]>

* Fixing typo

Signed-off-by: Adam Farley <[email protected]>

* Tidying output and adding debug

Signed-off-by: Adam Farley <[email protected]>

* Reducing quanity of output

Signed-off-by: Adam Farley <[email protected]>

* Debug

Signed-off-by: Adam Farley <[email protected]>

* Reducing output

Signed-off-by: Adam Farley <[email protected]>

* More useful output

Signed-off-by: Adam Farley <[email protected]>

* More debug

Signed-off-by: Adam Farley <[email protected]>

* Syntax fix

Signed-off-by: Adam Farley <[email protected]>

* Changing expected repro test bucket for windows and mac

Signed-off-by: Adam Farley <[email protected]>

* Removing debug messages, making all wgets more robust, plus code tidy

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]>

* Making wget spider call silent

Signed-off-by: Adam Farley <[email protected]>

* Fixing output typo

Signed-off-by: Adam Farley <[email protected]>

* Removing excess white spaces

Signed-off-by: Adam Farley <[email protected]>

* Adding variable use to make linter happy

Signed-off-by: Adam Farley <[email protected]>

* Removing build-passed check in favor of an upload-success check

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]>

---------

Signed-off-by: Adam Farley <[email protected]>
  • Loading branch information
adamfarley authored Nov 22, 2024
1 parent 2fd5c30 commit 926a185
Showing 1 changed file with 248 additions and 99 deletions.
Loading

0 comments on commit 926a185

Please sign in to comment.