- Sponsor
-
Notifications
You must be signed in to change notification settings - Fork 341
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
Promote specific version codes #980
Comments
I'm not sure I understand the possible scenario... would you mind sharing a concrete example when you'd have multiple releases in a single track with sample version codes, tracks, and release statuses (draft, in progress, completed)? |
Yeah examples always help! So we're using trunk based development, with the core idea that you should build a binary only once, and promote it when confidence is built. Discard any binary that fails a check. To start, if all of our unit/UI tests pass CI, we'll upload to internal or closed testing tracks to distribute to our team. This will happen on every merge to main/trunk. Version code ( A build could pass and it will be uploaded to Alpha:
Since it's our only build, let's ship it:
Running another build will upload to Alpha again.
While we're doing additional testing/verification/sign-off on
Now
If I use But I don't think retain artifacts is the right mechanism/semantic for what I want, so the suggestion is for a specific version code on the promote task. Hopefully this all makes sense! |
Ohhhhh, I see, so you want to be able to promote artifacts that aren't in a track. I'd never thought of that one before. Would it maybe make sense to promote artifacts that are undergoing verification to a staging track of sorts? The Play Console lets you create arbitrary tracks, so maybe you could create a |
This is true fairly often, yes. We only want to have one manual step in our delivery pipeline; the go to prod button. Since every build is a potential release candidate, having a separate staging track would leave us with the same problem since we'd just have every build end up there as well |
Gotya, that all makes sense. Thanks! |
Really looking forward to this one as well! 👍🏼 |
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.github.triplet.play | `3.8.6` -> `3.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [com.github.triplet.gradle:play-publisher](https://togithub.com/Triple-T/gradle-play-publisher) | `3.8.6` -> `3.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>Triple-T/gradle-play-publisher (com.github.triplet.gradle:play-publisher)</summary> ### [`v3.9.0`](https://togithub.com/Triple-T/gradle-play-publisher/releases/tag/3.9.0): Gradle Play Publisher 3.9.0 [Compare Source](https://togithub.com/Triple-T/gradle-play-publisher/compare/3.8.6...3.9.0) - Upgrade dependencies - Support specifying the version code from which to promote (see [https://github.com/Triple-T/gradle-play-publisher/issues/980](https://togithub.com/Triple-T/gradle-play-publisher/issues/980)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/julioromano/mooviez). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.github.triplet.play | `3.8.6` -> `3.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [com.github.triplet.gradle:play-publisher](https://togithub.com/Triple-T/gradle-play-publisher) | `3.8.6` -> `3.9.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>Triple-T/gradle-play-publisher (com.github.triplet.gradle:play-publisher)</summary> ### [`v3.9.0`](https://togithub.com/Triple-T/gradle-play-publisher/releases/tag/3.9.0): Gradle Play Publisher 3.9.0 [Compare Source](https://togithub.com/Triple-T/gradle-play-publisher/compare/3.8.6...3.9.0) - Upgrade dependencies - Support specifying the version code from which to promote (see [https://github.com/Triple-T/gradle-play-publisher/issues/980](https://togithub.com/Triple-T/gradle-play-publisher/issues/980)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/julioromano/skeleton-android). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Thanks for creating this great plugin!
Problem description
As I understand, the
promoteArtifact
tasks will lookup all the releases in thefromTrack
and pick the one with the highest version code to promote to thepromoteTrack
, and include any version codes inretain.artifacts
in the lookup.This always assumes that the latest release in the
fromTrack
is the one that should be promoted.It should be possible to promote other releases in the
fromTrack
, assuming the version code of the release is greater than any in thepromoteTrack
.Potential solutions/workarounds
I'd like to request the ability to configure a specific version code for use by the
promoteArtifact
task.If configured, the promotion task should find the release in the
fromTrack
with the configured version code(s).The configuration could be declared as a specific version code list:
Or configured to either check the android plugin's version code, or latest from the track:
Either option should also be configurable from the CLI.
Additional context
This is to support our use case where we have frequent uploads/promotions to testing tracks. We want to select specific releases to promote to production that have passed the checks of extra scrutiny. These checks can be manual and take more time than the frequency of upload to testing tracks.
I'm also happy to attempt a contribution if you agree with this approach
The text was updated successfully, but these errors were encountered: