Add release artifact sync workflow - #49
Conversation
This comment has been minimized.
This comment has been minimized.
|
The tag concern is understood, but in this repo there is no corresponding public commit for the private build. Public release tags are intentionally just anchors on the public default branch, so creating a missing release tag at the current public branch head is acceptable for this sync workflow. |
Not sure if there's something in this - but the public releases are not code-based - they're just buckets for uploads. Maybe add a comment to help the review understand the intent. |
8410e59 to
2ead027
Compare
I added a comment in the code so that future reviewers can see why the concern is not really applicable here. |
This comment has been minimized.
This comment has been minimized.
2ead027 to
9ed73ac
Compare
Signed-off-by: Han Verstraete (OpenFaaS Ltd) <han@openfaas.com>
9ed73ac to
3703c3d
Compare
AI Pull Request OverviewDisclaimer: This review was generated by automated AI and may contain errors. Do not trust its outputs without human verification. Summary
Approval rating (1-10)7/10. The sync logic is focused, but the write-privileged workflow should not depend on a mutable third-party action ref. Summary per fileSummary per file
Overall AssessmentThe implementation is small and mostly aligns with the stated goal: export artifacts from a tagged OCI bundle, create missing releases, and upload assets. The main issue is supply-chain exposure in the workflow. Because the job has Detailed ReviewDetailed ReviewFindingsHigh: Mutable third-party action runs with release-write permissions
The workflow grants Pin the action to an immutable commit SHA, or avoid the third-party action in the write-privileged job by installing AI agent details. |
We follow the same pattern for the arkade-get action in all our workflows, pinning to @master. The arkade-get action is also owned by us which minimises the risk. |
Description
Adds a release artifact sync workflow for copying release binaries from an OCI artifact bundle into GitHub Releases.
The workflow can run nightly or through
workflow_dispatch. When a tag is provided, it syncs that tag explicitly and overwrites matching release assets. Without a tag, it lists tags fromghcr.io/openfaasltd/inlets-pro-artifactsand only syncs releases that are missing from the public repository.The release sync logic is kept in
hack/sync-release-artifacts.shso it can be tested locally with a source OCI artifact, target repository, and optional tag.Motivation and context
This is part of a series of changes to automate publishing and release syncing between the private and public inlets-pro repositories.
How has this been tested
Tested the script locally against a public OCI artifact bundle and a test repository, including the explicit tag sync path and the no-tag skip path.
Also tested the workflow end-to-end through
workflow_dispatchagainst a test repository. The run completed successfully and uploaded the expected release binaries and checksums.