Skip to content

Fix part of #6106: Add In-Depth Release Reference wiki page - #6355

Open
Sandesh282 wants to merge 3 commits into
developfrom
pr2.8
Open

Fix part of #6106: Add In-Depth Release Reference wiki page#6355
Sandesh282 wants to merge 3 commits into
developfrom
pr2.8

Conversation

@Sandesh282

@Sandesh282 Sandesh282 commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Fixes part of #6106

Explanation

The Oppia Android release pipeline has been progressively automated, but the tooling for manual fallback — what a coordinator should do when a workflow fails mid-run — has lived nowhere accessible. This PR adds the In-Depth Release Reference wiki page, which is the manual fallback guide for every automated workflow in the release pipeline.

The page covers all 8 workflows in order: generate_changelog.yml, auto_release_alpha.yml, pull_latest_lesson_versions.yml, deploy_updated_changelog.yml, build_and_sign.yml, deploy_to_firebase.yml, deploy_to_play_console.yml, and update_rollout.yml. For each, it documents the normal trigger and purpose, then gives copy-pasteable bazel run commands a coordinator can run locally to replicate what the workflow does. Where a workflow has multiple failure modes (e.g. auto_release_alpha.yml can fail with "no commits", "no passing CI", or a dispatch failure), each case is addressed separately.

The page is cross-linked from the Release Playbook so that every automated step in the playbook has a direct path to its manual equivalent.

Essential Checklist

  • The PR title starts with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".)
  • The explanation section above starts with "Fixes #bugnum: " (If this PR fixes part of an issue, use instead: "Fixes part of #bugnum: ...".)
  • Any changes to scripts/assets files have their rationale included in the PR explanation.
  • The PR follows the style guide.
  • The PR does not contain any unnecessary code changes from Android Studio (reference).
  • The PR is made from a branch that's not called "develop" and is up-to-date with "develop".
  • The PR is assigned to the appropriate reviewers (reference).

Disclosure of LLM Usage

AI was used for code completion, drafting wiki content, and research.

@Sandesh282 Sandesh282 self-assigned this Aug 13, 2026
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 57129583-d133-41f5-ace2-3eb4c97f4a77

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Sandesh282 Sandesh282 changed the title Fix part of #6106: Add placeholder for In-Depth Release Reference wiki page Fix part of #6106: Add In-Depth Release Reference wiki page Aug 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Coverage Report

Results

Coverage Analysis: SKIP ⏭️

This PR did not introduce any changes to Kotlin source or test files.

To learn more, visit the Oppia Android Code Coverage wiki page

@oppiabot

oppiabot Bot commented Aug 20, 2026

Copy link
Copy Markdown

Hi @Sandesh282, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you! If you're unsure how to reassign this PR to a reviewer, please make sure to review the wiki page that details the Guidance on submitting PRs.

@oppiabot oppiabot Bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Aug 20, 2026
@Sandesh282 Sandesh282 removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Aug 22, 2026
@Sandesh282
Sandesh282 marked this pull request as ready for review August 23, 2026 16:59
@Sandesh282
Sandesh282 requested review from a team as code owners August 23, 2026 16:59
@oppiabot

oppiabot Bot commented Sep 3, 2026

Copy link
Copy Markdown

Hi @Sandesh282, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you! If you're unsure how to reassign this PR to a reviewer, please make sure to review the wiki page that details the Guidance on submitting PRs.

@oppiabot oppiabot Bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Sep 3, 2026
@adhiamboperes adhiamboperes removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Sep 4, 2026

@adhiamboperes adhiamboperes left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

PTAL @Sandesh282.

Comment on lines +5 to +6
manually outside of its normal trigger. It is linked from the
[Release Playbook](Release-Playbook.md).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
manually outside of its normal trigger. It is linked from the
[Release Playbook](Release-Playbook.md).
manually outside of its normal trigger.

Not necessary?

Comment on lines +16 to +23
1. [generate\_changelog.yml fails](#1-generate_changelogymlfails)
2. [auto\_release\_alpha.yml fails](#2-auto_release_alphaymlfails)
3. [pull\_latest\_lesson\_versions.yml fails](#3-pull_latest_lesson_versionsymlfails)
4. [deploy\_updated\_changelog.yml fails](#4-deploy_updated_changelogymlfails)
5. [build\_and\_sign.yml fails](#5-build_and_signymlfails)
6. [deploy\_to\_firebase.yml fails](#6-deploy_to_firebaseymlfails)
7. [deploy\_to\_play\_console.yml fails](#7-deploy_to_play_consoleymlfails)
8. [update\_rollout.yml fails](#8-update_rolloutymlfails)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same feedback as before: refer to workflows by their display names

Comment on lines +60 to +62
The workflow exits cleanly (no error). No action needed unless a release is urgent — in that
case, manually dispatch the workflow or extend the commit search limit via `workflow_dispatch`
inputs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

  • Please provide further isntructions to manually dispatch the workflow.

  • or extend the commit search limit via workflow_dispatch inputs.

How is this possible?

Comment on lines +71 to +72
**Case C — Workflow succeeded but `build_and_sign.yml` was not dispatched:**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can you give an example of how this scenario might come about?

Comment on lines +73 to +74
Manually force-push the `latest-alpha` tag to the desired commit and then trigger
`build_and_sign.yml`:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

How can"Manually force-push the latest-alpha tag" be done?


**Manual fallback:**

1. Obtain `prod_server.key` from the repository secret (ask the infrastructure team).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

It's best to ask the tech leads to perform this recovery, because the prod server key will likely not be distributed for security reasons.


**What it does:** Downloads the latest lesson versions from the Oppia production server and
opens a PR updating `config/lessons/*.textproto`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Under what circumstance is the workflow likely to fail, such that one of the recovery steps isn't manual dispatch of the workflow?

| Changelog missing | Ensure `config/changelogs/<version>.md` exists and is merged to `develop` |
| Active edit session conflict | Wait ~5 minutes for the previous Play API session to expire, then retry |

**Manual fallback — Play Console web UI:**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The section is missing info about how to manually freeze a bundle.

- `version`: e.g. `0.18`
- `flavor`: `alpha`, `beta`, or leave blank for the default changelog

**Manual fallback — run script locally:**

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I believe changelogs can be manually edited eithing Play Console.

@oppiabot

oppiabot Bot commented Sep 7, 2026

Copy link
Copy Markdown

Unassigning @adhiamboperes since the review is done.

@oppiabot

oppiabot Bot commented Sep 7, 2026

Copy link
Copy Markdown

Hi @Sandesh282, it looks like some changes were requested on this pull request by @adhiamboperes. PTAL. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants