[MS-1505] Add release dashboard promotion workflows#1747
Merged
Conversation
meladRaouf
force-pushed
the
add-release-dashboard-promote-workflow
branch
from
July 13, 2026 17:29
7b867d2 to
af754a7
Compare
meladRaouf
force-pushed
the
add-release-dashboard-promote-workflow
branch
from
July 13, 2026 18:00
9a6d57b to
83e68e8
Compare
There was a problem hiding this comment.
Pull request overview
Adds GitHub Actions workflows to manually promote a released app version to a given “stage” and keep a gh-pages-hosted release dashboard (status.json) updated, plus an automation to keep the manual workflow’s version dropdown in sync with published GitHub Releases.
Changes:
- Introduces a manual
workflow_dispatchworkflow to promote a version toproduction_ready,delivery_testing, orproduction, resolving the Release + APK URL viagh. - Adds a reusable workflow that writes the promoted stage/version/urls into
status.jsonongh-pagesand commits/pushes. - Adds a workflow triggered on
release: published(and manually) to regenerate theversionchoice list in the promotion workflow.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| .github/workflows/update-release-stage.yml | Manual promotion entrypoint; resolves release info and calls the reusable dashboard updater. |
| .github/workflows/reusable-update-dashboard.yml | Reusable workflow that updates status.json on gh-pages and pushes the change. |
| .github/workflows/sync-release-stage-versions.yml | Regenerates the promotion workflow’s version dropdown from published release tags and pushes updates to the default branch. |
meladRaouf
force-pushed
the
add-release-dashboard-promote-workflow
branch
from
July 14, 2026 09:53
4856c70 to
146012b
Compare
- Add update-release-stage.yml: manual "Promote Release Stage" workflow to record that a version has reached Beta (production_ready), Delivery Testing, or Production. Looks up the GitHub Release for the version to find the APK download URL automatically. The version input is a choice dropdown seeded with the 15 most recent published release tags, wrapped in marker comments for automated regeneration. - Add reusable-update-dashboard.yml: reusable workflow that writes the promoted version's info into status.json on gh-pages and commits/pushes the change. - Add sync-release-stage-versions.yml: workflow triggered on `release: published` (and manual dispatch) that regenerates the version dropdown in update-release-stage.yml from the live list of release tags and commits the change back to main, keeping the list in sync. - Avoid script injection by never interpolating workflow_dispatch inputs directly into `run:` blocks; all user-controlled values are passed via `env:` and referenced as shell variables instead.
- Grant contents:write permission in update-release-stage.yml so the reusable update-dashboard workflow can push to gh-pages - Checkout the default branch explicitly in sync-release-stage-versions.yml since release:published triggers run on a detached tag ref - Add a concurrency group to reusable-update-dashboard.yml to serialize concurrent updates to the shared gh-pages status.json
meladRaouf
force-pushed
the
add-release-dashboard-promote-workflow
branch
from
July 14, 2026 09:56
146012b to
bb7f415
Compare
|
meladRaouf
requested review from
BurningAXE,
alex-vt,
alexandr-simprints and
luhmirin-s
July 14, 2026 10:26
luhmirin-s
approved these changes
Jul 14, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.



JIRA ticket
Will be released in: no app release
Notable changes
update-release-stage.yml— manualworkflow_dispatchworkflow to promote a version toproduction_ready(Beta),delivery_testing, orproduction. Looks up the GitHub Release for that version to find the APK download URL automatically. Theversioninput is achoicedropdown seeded with the 15 most recent published release tags (wrapped in marker comments for automated regeneration), andstageis achoiceof the three supported environments.reusable-update-dashboard.yml— reusable workflow that writes the promoted environment/version/apk_url/release_url intostatus.jsonon thegh-pagesbranch and commits/pushes the change, so the release status dashboard stays up to date.sync-release-stage-versions.yml— workflow triggered onrelease: published(and manual dispatch) that regenerates theversiondropdown inupdate-release-stage.ymlfrom the live list of release tags and commits the change back tomain, keeping the dropdown in sync without manual edits.workflow_dispatchinputs are passed viaenv:rather than interpolated directly intorun:blocks, to avoid script injection.Testing guidance
update-release-stage.ymlmanually viaworkflow_dispatch, selecting astageandversion, and confirmstatus.jsonongh-pagesis updated with the correct version/apk_url/release_url and the dashboard reflects the change.sync-release-stage-versions.ymlruns and updates theversiondropdown options inupdate-release-stage.ymlonmain.Additional work checklist