-
Notifications
You must be signed in to change notification settings - Fork 2.4k
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
[CI:BUILD] Cirrus: Publish binary artifacts on success #13559
[CI:BUILD] Cirrus: Publish binary artifacts on success #13559
Conversation
6f81837
to
e894623
Compare
dc465c5
to
d0f5e5e
Compare
@baude asked for this for something. Are those binaries/tarballs enough? Is there some other specific CI artifact you'd like available from a consistently named URL? |
The commit message (and github comment) describe how you're solving the problem, but give no indication of what problem you're trying to solve. Could you include a 'why' portion, explaining the purpose behind all this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand the motivation here, nor do I really understand cirrus yaml anyway, so all I can do is comment on some unnecessary (to my eye) duplication
Brent asked for it for something, I didn't ask why at the time. It's for aardvark-dns and netavark CI, presumably some kind of reverse-dependency testing. Though in general having "CD" available as a CI-feature is good-practice. Heck, you could use it to do a binary-size check in about 3-lines of bash 😉 I'll update the commit and description accordingly. |
In general continuous-delivery (CD) tends to pair well with CI. More specifically, there is a need for some reverse-dependency CI testing in netavark/aardvark-dns. In all cases, the download URL needs to remain consistent, without elements like `Build%20for%20fedora-35`. The 'Total Success' task only ever executes when all dependencies are successful. When a non `[CI:DOCS]` build is successful, gather all binary/release artifacts in a new task which depends on 'Total Success'. This will provide a uniform name (`artifacts`) and URL for downstream users to use. For example: https://api.cirrus-ci.com/v1/artifact/github/containers/podman/artifacts/binary.zip or https://api.cirrus-ci.com/v1/artifact/github/containers/podman/artifacts/binary/FILENAME Where ***FILENAME*** is one of: * `podman` * `podman-remote` * `rootlessport` * `podman-release-386.tar.gz` * `podman-release-amd64.tar.gz` * `podman-release-arm64.tar.gz` * `podman-release-arm.tar.gz` * `podman-release-mips64le.tar.gz` * `podman-release-mips64.tar.gz` * `podman-release-mipsle.tar.gz` * `podman-release-mips.tar.gz` * `podman-release-ppc64le.tar.gz` * `podman-release-s390x.tar.gz` * `podman-remote-release-darwin_amd64.zip` * `podman-remote-release-darwin_arm64.zip` * `podman-remote-release-windows_amd64.zip` * `podman-v4.0.0-dev.msi` Signed-off-by: Chris Evich <cevich@redhat.com>
All fixed, and added some (hopefully) helpful comments. |
Did you forget to push? Or perhaps your push got swallowed by the github outage? |
d0f5e5e
to
1a7f5b3
Compare
yep, swallowed. Pushed fine just now. |
Ugh, it's also affecting Cirrus-CI apparently |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, looks a lot better except for one probably minor issue with extraction directories.
- chmod +x podman* rootlessport | ||
# Architecture in filename & can't use wildcards in a URL | ||
- mkdir -p /tmp/alt | ||
- cd /tmp/alt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Previous iteration had these as subdirectories of $CIRRUS_WORKING_DIR
, a directory which (assuming line 829 is correct) is empty. Do we have such guarantees about /tmp/alt
and /tmp/win
? I kind of prefer the all-under-one-subdirectory approach.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, it's a fresh VM image at boot so /tmp/
will be empty except for the usual systemd stuff.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cevich, edsantiago The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm |
/hold cancel |
The 'Total Success' task only ever executes when all dependencies are
successful. Since other task names can vary across different OS releases,
their artifact URLs will be inconsistent over time. When a non
[CI:DOCS]
build is successful, gather all binary/release artifactsin a new task which depends on 'Total Success'. This will provide a
uniform name and URL for downstream users. For example:
https://api.cirrus-ci.com/v1/artifact/github/containers/podman/artifacts/binary.zip
or
https://api.cirrus-ci.com/v1/artifact/github/containers/podman/artifacts/binary/ FILENAME
Where FILENAME is one of:
podman
podman-remote
rootlessport
podman-release-386.tar.gz
podman-release-amd64.tar.gz
podman-release-arm64.tar.gz
podman-release-arm.tar.gz
podman-release-mips64le.tar.gz
podman-release-mips64.tar.gz
podman-release-mipsle.tar.gz
podman-release-mips.tar.gz
podman-release-ppc64le.tar.gz
podman-release-s390x.tar.gz
podman-remote-release-darwin_amd64.zip
podman-remote-release-darwin_arm64.zip
podman-remote-release-windows_amd64.zip
podman-v4.0.0-dev.msi