Skip to content

Add workflow to create hotfix task - #9262

Open
CrisBarreiro wants to merge 2 commits into
developfrom
feature/cris/hotfix-create-task
Open

Add workflow to create hotfix task#9262
CrisBarreiro wants to merge 2 commits into
developfrom
feature/cris/hotfix-create-task

Conversation

@CrisBarreiro

@CrisBarreiro CrisBarreiro commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Task/Issue URL: https://app.asana.com/1/137249556945/project/1211760946270935/task/1216782209119876?focus=true
Tech Design URL (if applicable):

Description

Add a new workflow that takes a git tag and a list of commits as inputs, creates a hotfix task, tags tasks, and removes them from the release board. The new task will include both the commits supplied as an input, and all commits included in previous releases/hotfixes. For example, for X.Y.2, it will add tasks for X.Y.1 and X.Y.0 as well

Steps to test this PR

Feature 1

  • Manually run tests
  • Run the script with --dry-run and compare with an existing Asana task
python3 scripts/release/create-asana-hotfix-release.py \
  --dry-run \
  --tag 5.286.2 \
  --commit-hashes 79ef1ddd65 \
  --trigger-phrase 'Task/Issue URL:' \
  --android-repo-path .

UI changes

Before After
!(Upload before screenshot) (Upload after screenshot)

Note

Medium Risk
Automation mutates Asana release-board tasks (tagging and removal) and is new hotfix-specific logic; mistakes could mis-label QA work, but scope is limited to release scripts and CI, not the Android app.

Overview
Adds hotfix_create_task.yml, a callable and manually dispatchable workflow that creates an Android hotfix release task in Asana from a hotfix version and cherry-picked commit SHAs. It mirrors the existing release task flow: run the Python script, assign the task to the actor, post Mattermost success/failure notifications, and open a blocker Asana task on failure.

Introduces create-asana-hotfix-release.py, which builds the hotfix task from Asana links in the listed cherry-picks and adds a second notes section for tasks already shipped on the same minor line (base X.Y.0 plus prior hotfixes). Only new cherry-pick tasks are tagged with android-release-{version} and removed from the release board; prior-line tasks are left as-is.

Refactors shared Asana/git logic into asana_release_utils.py (commit resolution by hash, latest tag in a minor line, task duplication, HTML notes, tagging, project removal). create-asana-public-release.py now imports those helpers instead of duplicating them.

Fixes the release workflow’s failed-run Mattermost step to use mattermost-message instead of mistakenly passing the message as asana-task-description. Unit tests cover the new utilities and hotfix script helpers (including --dry-run).

Reviewed by Cursor Bugbot for commit 10f8b49. Bugbot is set up for automated code reviews on this repo. Configure here.

Copy link
Copy Markdown
Collaborator Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@cursor cursor Bot 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.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d2deeda. Configure here.

Comment thread .github/workflows/hotfix_create_task.yml
RELEASE_TASK_URL=$(python ./scripts/release/create-asana-hotfix-release.py \
--android-repo-path . \
--tag "${{ inputs.app-version }}" \
--commit-hashes "${{ inputs.commit-hashes }}" \

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

In the future, once we have an orchestrator, we could drop this and only rely on the git tag, but as of now, this mimics the manual process (first create the task, then the tag)

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