You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Release through the shared EDOT release actions - #929
Moves EDOT Android's release automation onto the shared edot-release actions in elastic/oblt-actions (elastic/oblt-actions#1141, elastic/oblt-actions#1152, elastic/oblt-actions#1154), released in v1.42.0. The same actions will serve EDOT iOS (elastic/apm-agent-ios), so both SDKs release through one implementation. The operator flow stays the same: draft and approve the notes, dispatch Prepare release, merge the preparation pull request, then merge the pull request into main. Android keeps only its own steps between the shared ones.
Changes
Add .github/edot-release.json with Android's release facts: tag prefix, product name, version file and line, docs anchors and URL, applies_to key, and the paths a preparation stages, including the NOTICE files.
Rewrite the Draft release notes, Prepare release, Publish release, and Start patch workflows to call elastic/oblt-actions/edot-release/*@v1. They keep NOTICE regeneration, publication, artifact download, attestation, and the team notifications, and drop the ref checks the actions now own. Draft release notes also uploads the drafted JSON as the release-notes run artifact.
Delete the release scripts under .github/scripts/release.
Update RELEASING.md for the shared behavior: finished release branches are deleted automatically, the branch of each pull request into main is deleted by hand after merging, a failed preparation pull request rolls back its branches, Start patch takes comma-separated pull request numbers, and a fix that changes workflow files reaches a patch branch through a hand-made pull request.
Give the release wizard skill helper scripts for reading the release state, drafting notes through the Draft release notes workflow, previewing a patch, and dispatching workflows, so it runs one command for each mechanical step.
The release workflows now call the edot-release actions of elastic/oblt-actions at v1 with the platform facts in .github/edot-release.json, and keep only the steps specific to this repository: NOTICE regeneration, publication, artifact download, attestation, and the team notifications. The release scripts under .github/scripts/release are deleted.
RELEASING.md describes the resulting behavior: automatic deletion of the finished release branches, the rollback when the preparation pull request cannot be opened, the comma-separated pull request list for Start patch, the hand-deleted branches of the pull requests into main, and the hand-made patches of releases up to 1.10.0. The release wizard skill gains helper scripts for reading the release state, drafting notes through the Draft release notes workflow, previewing a patch, and dispatching workflows.
The guide, the release wizard, and its notes script no longer carry special cases for releases cut before the shared release actions. Those releases are patched by hand, and the Start patch message already says so.
dispatch.sh dispatches through the workflow dispatch API with return_run_details, so it watches the run the API reports instead of looking for a run by its creation time, which a concurrent dispatch could match. Workflow inputs are now passed as <input>=<value>.
Make success notification non-blocking after branch deletion
.github/workflows/publish-release.yml:124
For patch releases, this finalizer deletes releasing/X.Y.Z before the following Slack step runs. If the success notification fails, the completed release is reported as a failed job, but rerunning it cannot pass publish-guard because that base branch is already gone. Make the success notification non-blocking, as the start notification already is.
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
After a patch release, finalize has already deleted releasing/X.Y.Z when the success notification runs, so a failed notification would mark the finished release as failed and a rerun could not pass the guard. The notification no longer fails the job, like the start notification.
Just need one review from @elastic/observablt-ci 🙏 - These changes are meant to use the previously added edot-release actions from the oblt-actions repo.
Thank you for your review, @mallendem 🙏 - I addressed your comments and also created a couple of oblt-actions PRs to make some fixes cleaner and reusable for future use cases, as I'm planning to use the same actions on some other repos. Please take another look!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Moves EDOT Android's release automation onto the shared
edot-releaseactions in elastic/oblt-actions (elastic/oblt-actions#1141, elastic/oblt-actions#1152, elastic/oblt-actions#1154), released inv1.42.0. The same actions will serve EDOT iOS (elastic/apm-agent-ios), so both SDKs release through one implementation. The operator flow stays the same: draft and approve the notes, dispatch Prepare release, merge the preparation pull request, then merge the pull request intomain. Android keeps only its own steps between the shared ones.Changes
.github/edot-release.jsonwith Android's release facts: tag prefix, product name, version file and line, docs anchors and URL,applies_tokey, and the paths a preparation stages, including the NOTICE files.elastic/oblt-actions/edot-release/*@v1. They keep NOTICE regeneration, publication, artifact download, attestation, and the team notifications, and drop the ref checks the actions now own. Draft release notes also uploads the drafted JSON as therelease-notesrun artifact..github/scripts/release.RELEASING.mdfor the shared behavior: finished release branches are deleted automatically, the branch of each pull request intomainis deleted by hand after merging, a failed preparation pull request rolls back its branches, Start patch takes comma-separated pull request numbers, and a fix that changes workflow files reaches a patch branch through a hand-made pull request.