Skip to content

Release through the shared EDOT release actions - #929

Merged
LikeTheSalad merged 5 commits into
mainfrom
enhancement/shared-release-tooling-android-migrates
Oct 20, 2026
Merged

LikeTheSalad merged 5 commits into
mainfrom
enhancement/shared-release-tooling-android-migrates

Conversation

@LikeTheSalad

@LikeTheSalad LikeTheSalad commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Summary

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.
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown

🤖 GitHub comments

Just comment with:

  • run docs-build : Re-trigger the docs validation. (use unformatted text in the comment!)

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Run correlation can select the wrong workflow run, and patch previews accept PRs the shared action will reject.

2 open findings
What changed in this PR

Migrates Android release automation to shared EDOT release actions while preserving Android-specific publication and NOTICE steps.

Changes:

  • Replaces local release scripts with shared oblt-actions workflows and configuration.
  • Adds release-wizard helper scripts for state, previews, drafting, and dispatch.
  • Updates release and patch documentation.
File Description
.github/​edot-release.json Defines Android release configuration.
.github/​workflows/​draft-release-notes.yml Uses shared note drafting and uploads JSON.
.github/​workflows/​prepare-release.yml Uses shared preparation actions around NOTICE generation.
.github/​workflows/​publish-release.yml Uses shared guard and finalization actions.
.github/​workflows/​start-patch.yml Uses the shared patch action.
RELEASING.md Documents the revised release lifecycle.
skills/​android-release-wizard/​SKILL.md Updates wizard instructions for helper scripts.
skills/​android-release-wizard/​scripts/​repository.sh Centralizes the repository name.
skills/​android-release-wizard/​scripts/​release-state.sh Reports current release state and next actions.
skills/​android-release-wizard/​scripts/​patch-preview.sh Previews patch versions and candidate PRs.
skills/​android-release-wizard/​scripts/​draft-notes.sh Dispatches and retrieves drafted notes.
skills/​android-release-wizard/​scripts/​dispatch.sh Dispatches and monitors release workflows.
.github/​scripts/​release/​version.sh Removes local version logic.
.github/​scripts/​release/​start-patch.sh Removes local patch-start logic.
.github/​scripts/​release/​sample.json Removes the superseded sample file.
.github/​scripts/​release/​render-release-notes.sh Removes local note rendering.
.github/​scripts/​release/​publish-guard.sh Removes the local publish guard.
.github/​scripts/​release/​prepare-release.sh Removes local preparation logic.
.github/​scripts/​release/​pr-range.sh Removes local PR-range logic.
.github/​scripts/​release/​finalize-release.sh Removes local finalization logic.
.github/​scripts/​release/​draft-release-notes.sh Removes local note drafting.

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

Comment thread skills/android-release-wizard/scripts/dispatch.sh Outdated
Comment thread skills/android-release-wizard/scripts/patch-preview.sh
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>.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Patch-release retry handling and pre-migration patch documentation need correction.

1 open finding
2 resolved since last review
Previously missed (1)

In code that hasn't changed since last review

Medium severity 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.

Comment thread RELEASING.md
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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

It changes the artifact-publishing, tagging, and branch-management pipeline, warranting final human validation.

0 open findings

1 resolved since last review

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

@LikeTheSalad
LikeTheSalad marked this pull request as ready for review October 8, 2026 13:06
@LikeTheSalad
LikeTheSalad requested review from a team as code owners October 8, 2026 13:06
jackshirazi
jackshirazi previously approved these changes Oct 8, 2026
vishaangelova
vishaangelova previously approved these changes Oct 13, 2026

@vishaangelova vishaangelova left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for the Markdown files

@LikeTheSalad

Copy link
Copy Markdown
Contributor Author

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.

Comment thread .github/workflows/prepare-release.yml
Comment thread skills/android-release-wizard/scripts/patch-preview.sh Outdated
Comment thread .github/workflows/draft-release-notes.yml Outdated
Comment thread .github/workflows/draft-release-notes.yml
Comment thread skills/android-release-wizard/SKILL.md
… tag prefix from the release configuration, and report a no-op preparation
@LikeTheSalad

Copy link
Copy Markdown
Contributor Author

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!

@vishaangelova vishaangelova left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for the docs

@mallendem

Copy link
Copy Markdown

LGTM!

@LikeTheSalad
LikeTheSalad merged commit fa20d56 into main Oct 20, 2026
14 checks passed
@LikeTheSalad
LikeTheSalad deleted the enhancement/shared-release-tooling-android-migrates branch October 21, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants