pipelines icon indicating copy to clipboard operation
pipelines copied to clipboard

chore(CI): Add reusable GitHub Action to collect Argo Workflow archived logs and integrate it across workflows

Open hbelmiro opened this issue 2 weeks ago • 4 comments

Description of your changes: Added reusable GitHub Action to collect Argo Workflow archived logs and integrate it across workflows.

Checklist:

hbelmiro avatar Dec 08 '25 21:12 hbelmiro

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

google-oss-prow[bot] avatar Dec 08 '25 21:12 google-oss-prow[bot]

@github Review this PR for performance issues

HumairAK avatar Dec 15 '25 15:12 HumairAK

@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.

hbelmiro avatar Dec 18 '25 12:12 hbelmiro

[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.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

google-oss-prow[bot] avatar Dec 18 '25 12:12 google-oss-prow[bot]

@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 avatar Dec 18 '25 15:12 nsingla

@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.

hbelmiro avatar Dec 18 '25 18:12 hbelmiro