mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
49 lines
1.9 KiB
Markdown
49 lines
1.9 KiB
Markdown
# Coordinated releases
|
|
|
|
Only `.github/workflows/release.yml` responds to version tags. It verifies that
|
|
the tag matches `version.properties` and points at the current `master`, then
|
|
calls the native platform workflows in parallel.
|
|
|
|
The tag workflow runs only when the repository variable
|
|
`RELEASE_PIPELINE_ENABLED` is exactly `true`. Leave it unset or set it to
|
|
`false` to disable all coordinated releases, including Play uploads, without
|
|
disabling release validation on pull requests.
|
|
|
|
Platform workflows upload private workflow artifacts. After every native build
|
|
passes, the release pipeline:
|
|
|
|
1. stages the signed AAB as a draft on the configured Play closed-test track;
|
|
2. downloads the universal APK signed by Play;
|
|
3. verifies and assembles the public artifacts;
|
|
4. generates checksums and GitHub build-provenance attestations;
|
|
5. creates exactly one GitHub Release;
|
|
6. updates the Homebrew cask.
|
|
|
|
Public GitHub Release assets are the DEB, RPM, notarized DMG, Sparkle appcast,
|
|
Play-signed universal APK, checksum file, and release manifest.
|
|
|
|
The unsigned Microsoft `.msixupload` and upload-signed Android AAB remain
|
|
private workflow artifacts. Partner Center submission stays manual until the
|
|
first Microsoft Store release is certified. The Play release remains a draft
|
|
on a closed-testing track; this pipeline cannot publish to production.
|
|
|
|
To release, prepare and merge the new product version. Android, Microsoft Store,
|
|
and Apple build/package versions are derived automatically:
|
|
|
|
```bash
|
|
make prepare-release RELEASE_VERSION=0.2.1
|
|
make check-version
|
|
```
|
|
|
|
Then create and push the matching tag:
|
|
|
|
```bash
|
|
git tag -s v0.2.1 -m "VniDrop 0.2.1"
|
|
git push origin v0.2.1
|
|
```
|
|
|
|
The tag must point at the current `origin/master` commit. A failed run creates
|
|
no GitHub Release; a rerun safely reuses an already-staged Play draft only when
|
|
the version, configured track, draft status, and app-signing certificate all
|
|
match.
|