chore(ci): handle -rc and -pr. pre-release tags in vdev publish workflow#25456
chore(ci): handle -rc and -pr. pre-release tags in vdev publish workflow#25456thomasqueirozb wants to merge 8 commits into
Conversation
654819f to
85b2246
Compare
…e CI validation" This reverts commit 63fd4c5.
There was a problem hiding this comment.
General comment: The PR description should explain the proposed process and include a motivation section.
This makes PR prereleases installable but it doesn't prevent us from merging a 0.3.4-pr.25456 version into origin/master. We will need a pre/after merge policy to cover this aspect.
| uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0 | ||
| with: | ||
| files: ${{ env.ASSET }} | ||
| prerelease: ${{ contains(github.ref_name, '-rc') || contains(github.ref_name, '-pr.') }} |
There was a problem hiding this comment.
Can we simplify this? I wonder if we need -rc. How does tagging work while iterating on a PR?
See example:
0.3.4-pr.25456.1
0.3.4-pr.25456.2
0.3.4-pr.25456.3
There was a problem hiding this comment.
-rc not needed, but there's no harm in leaving it here. I think that we should be able to overwrite tags and pre-releases
There was a problem hiding this comment.
-rc not needed, but there's no harm in leaving it here.
Let's always default to the YAGNI principle. It is fine to add it later if there's a use case.
I think that we should be able to overwrite tags and pre-releases
I’d be a little wary of overwriting tags/releases here. For this flow, the tag is effectively the immutable coordinate CI uses to fetch a vdev binary. If we change a tag, then it is harder to answer which binary a run used. My preference would be to keep prerelease artifacts append-only. We would still need an idea here on what to do Once we want to merge a PR which essentially means promote e.g. 0.3.4-pr.25456.3 to an actual vdev version. Also, need to consider automating cleaning up versions.
Summary
Follow-up to #25418.
vdev_publish.ymlnow skips crates.io publish and marks GitHub releases as pre-releases for tags containing-rcor-pr.(e.g.vdev-v0.3.4-rc.1,vdev-v0.3.4-pr.1234). Adds a "Testing vdev changes in CI" section tovdev/README.mddocumenting the RC/PR pre-release workflow. RemovesVDEV_VERSIONfromprepare.sh— CI now installs vdev via--manifest-path vdev/Cargo.tomlsovdev/Cargo.tomlis the single source of truth.Vector configuration
NA
How did you test this PR?
End-to-end test of the full pre-release workflow:
vdev-v0.3.4-pr.25456from this branch with an intentionalcheck-markdownfailure baked into the vdev binary.publishjob was skipped).--manifest-pathinstall path in 7ce2689, which resulted in the failing Check Markdown run.Change Type
Is this a breaking change?
Does this PR include user facing changes?
References