chore(CI): Add reusable GitHub Action to collect Argo Workflow archived logs and integrate it across workflows
Description of your changes: Added reusable GitHub Action to collect Argo Workflow archived logs and integrate it across workflows.
Checklist:
- [x] You have signed off your commits
- [x] The title for your pull request (PR) should follow our title convention. Learn more about the pull request title convention used in this repository.
Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all
@github Review this PR for performance issues
@nsingla
Rather than augmenting the junit xml, is there no way, we can just fetch the workflow logs directly from s3/minio and append the logs in the AfterEach step?
I tried that, but Argo archives logs asynchronously. We don't find them immediately after workflow completion.
[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: Once this PR has been reviewed and has the lgtm label, please ask for approval from hbelmiro. For more information see the Kubernetes Code Review Process.
The full list of commands accepted by this bot can be found here.
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
@nsingla
Rather than augmenting the junit xml, is there no way, we can just fetch the workflow logs directly from s3/minio and append the logs in the AfterEach step?
I tried that, but Argo archives logs asynchronously. We don't find them immediately after workflow completion.
can we wait for it then? if we know its supposed to be there, we can try to poll for it with a timeout (just like we poll for run status in the e2e tests :) ) I think it will much simpler and more efficient way than augmenting the test report
@nsingla
Rather than augmenting the junit xml, is there no way, we can just fetch the workflow logs directly from s3/minio and append the logs in the AfterEach step?
I tried that, but Argo archives logs asynchronously. We don't find them immediately after workflow completion.
can we wait for it then? if we know its supposed to be there, we can try to poll for it with a timeout (just like we poll for run status in the e2e tests :) ) I think it will much simpler and more efficient way than augmenting the test report
much simpler
Not really. It actually moves the complexity to another place. Besides having to wait, every test suite would need minio setup, credentials... Also, we would have to find a way to reuse those. Currently the CI step does this once and easily.
I'd be happy to get rid of the Python script though :)
more efficient
It's actually less efficient. The amount of fetches is the same, but we would have to wait (due to the asynchronicity) in each failed test. I can't tell regarding the different complexities.