RFR: 8255352: Archive important test outputs in submit workflow
Robin Westberg
rwestberg at openjdk.java.net
Mon Oct 26 08:14:39 UTC 2020
On Fri, 23 Oct 2020 17:18:57 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> Currently, we are only archiving `build/*/test-results`. But hs_errs, replays, and test outputs are actually in `build/*/test-support`! Which means once any test fails, we only have the summary of the run, not the bits that would actually help to diagnose the problem.
>
> Archiving the entire test-support seems too much, it yields 50K artifacts available as 1 GB zip archive in GH GUI. On top of that `upload-artifact` does the upload per-file, which takes tens of minutes on 50K files (and I suspect many API calls).
>
> But we can pick up important test outputs selectively and then also compress them. See sample artifact here:
> https://github.com/shipilev/jdk/runs/1301540541
>
> It packages the final ZIP like this:
>
> $ unzip -t test-results_.zip
> Archive: test-results_.zip
> testing: artifact/ OK
> testing: artifact/linux-x64-debug_testresults_hs_tier1_common.zip OK
> testing: artifact/linux-x64-debug_testsupport_hs_tier1_common.zip OK
> ...
Looks good! I also tried including the entire test-support folder at some point, but as you noticed it takes quite a bit of time and space. So this approach seems much better.
Minor comment: The cygwin\bin folder is included twice in PATH on Windows to work around a bug in JTReg (the regex used to detect cygwin does not match the very first entry in the PATH list. Perhaps I should file a bug for that..) but it's not really needed if you are executing something else.
.github/workflows/submit.yml line 768:
> 766: working-directory: build/run-test-prebuilt/test-results/
> 767: run: >
> 768: $env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
Suggestion:
$env:Path = "$HOME\cygwin\cygwin64\bin;$env:Path" ;
.github/workflows/submit.yml line 778:
> 776: working-directory: build/run-test-prebuilt/test-support/
> 777: run: >
> 778: $env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
Suggestion:
$env:Path = "$HOME\cygwin\cygwin64\bin;$env:Path" ;
-------------
Marked as reviewed by rwestberg (Committer).
PR: https://git.openjdk.java.net/jdk/pull/842
More information about the build-dev
mailing list