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

Cirrus: new API clobbers past (flake) runs #14863

Closed
edsantiago opened this issue Jul 8, 2022 · 1 comment · Fixed by #14896
Closed

Cirrus: new API clobbers past (flake) runs #14863

edsantiago opened this issue Jul 8, 2022 · 1 comment · Fixed by #14896
Labels
locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments.

Comments

@edsantiago
Copy link
Member

The new logformatter URL mechanism, after #14608, has a serious flaw: flake URLs are lost. Reason: the new URLs include the BuildID, and TaskName, but not the TaskID. TaskID is the crucial one for linking to a flake log. Without TaskID, we have something like /build/12345/int this that, but the int this that on a successful run clobbers the one of the flaked run.

@cevich let's talk about this upon your return please.

@cevich
Copy link
Member

cevich commented Jul 11, 2022

Oof. Yes, the Cirrus-API will always reflect the "latest" artifact, so a re-run of a task for any reason will effectively clobber API access to any "old" runs. So if I understand correctly, you need a way to link to the annotated log output from a specific run of a task, preferable by TaskID. The tricky part is now we've got multiple clouds storing both logs and artifacts, so we need some kind of proxy or API to unify the URLs...or we need to store the annotated logs ourselves in a dedicated location.

Some ideas:

  1. Ask Cirrus nicely, if they would update their REST API to support URLs with <TASK NAME, ID, OR ALIAS>. Since $CIRRUS_TASK_ID is available at runtime, you can populate your links using that.
  2. Use (a hopefully working podman) in an always: script instruction for each task. In that, run the gcsupload container image and stuff the annotated log into a dedicated GCS bucket using a naming scheme of our own choosing. Update all links to reference the dedicated bucket and our own object naming scheme.
  3. Give up on referencing the annotated version of flake logs, instead just point at https://cirrus-ci.com/task/<$CIRRUS_TASK_ID>?logs=main#L<LINE NUMBER> raw log. Not ideal, but simple.

That's all I've got for now, but I'll keep thinking about it.

edsantiago added a commit to edsantiago/libpod that referenced this issue Jul 11, 2022
Reason: task IDs are unique and permanent; linking by
build ID and task name is non-unique, because Re-run.

Fixes: containers#14863

Signed-off-by: Ed Santiago <[email protected]>
mheon pushed a commit to mheon/libpod that referenced this issue Jul 26, 2022
Reason: task IDs are unique and permanent; linking by
build ID and task name is non-unique, because Re-run.

Fixes: containers#14863

Signed-off-by: Ed Santiago <[email protected]>
@github-actions github-actions bot added the locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments. label Sep 20, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 20, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
locked - please file new issue/PR Assist humans wanting to comment on an old issue or PR with locked comments.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants