kopia lustrzana https://github.com/meshtastic/Meshtastic-Android
This commit refactors the entire release process to be simpler, more robust, and less error-prone. The previous complex system of manual version calculation, artifact passing, and dry-run flags has been replaced with a more streamlined, two-stage process driven by distinct GitHub Actions workflows. The new process separates tag creation from the release engine. A new `create-internal-release.yml` workflow is introduced to handle the creation and iteration of internal build tags (e.g., `v1.2.3-internal.1`, `v1.2.3-internal.2`). The main `release.yml` workflow is now triggered solely by the presence of a new version tag. Key changes include: - The `release.yml` workflow no longer takes `dry_run` or `pr_number` inputs, as tag creation is now handled separately. - Version code is now consistently calculated once per build based on Git history and an offset, removing the complex logic for handling hotfixes and reusing version codes via artifacts. - Builds only occur if a release for the given `BASE_TAG` doesn't already exist on the same commit. This makes the process idempotent for promotions. - A new `prepare-release-environment` job intelligently handles superseded releases by deleting old releases and tags if a new tag for the same base version points to a different commit. - The build process is split into separate jobs for Google Play (`release-google`) and F-Droid (`release-fdroid`), allowing them to run in parallel. - Build attestations are now generated for all artifacts to improve supply chain security. - The `create-internal-release.yml` workflow is simplified to only require a `base_version`, automatically calculating the next internal iteration number. It no longer handles complex version bumping logic (`major`, `minor`, `patch`, `hotfix`). - Fastlane scripts have been cleaned up to remove now-unused lanes (`get_internal_track_version_code`). - The `RELEASE_PROCESS.md` documentation has been completely rewritten to reflect the new, simpler workflow. BREAKING CHANGE: The release workflow has been fundamentally changed. - The `release.yml` workflow is no longer triggered with `workflow_dispatch` inputs like `dry_run`. Releases are now initiated by pushing a correctly formatted tag. - The `create-internal-release.yml` workflow has been changed. It no longer supports `release_type` (`auto`, `patch`, etc.) and instead requires a specific `base_version` to create an internal build tag for. - Hotfix handling via special tags like `-hotfix` is removed. Superseding a release is now handled by creating a new internal iteration for the same base version from a newer commit. Signed-off-by: James Rich <2199651+jamesarich@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| ISSUE_TEMPLATE | ||
| actions/calculate-version-code | ||
| workflows | ||
| FUNDING.yml | ||
| PULL_REQUEST_TEMPLATE.md | ||
| copilot-instructions.md | ||
| labeler.yml | ||
| meshtastic_logo.png | ||
| release.yml | ||
| renovate.json | ||