Skip to content

[gha] Allow QA deployments to be manually triggered#4227

Open
imnasnainaec wants to merge 2 commits intomasterfrom
gha-deploy-qa-trigger
Open

[gha] Allow QA deployments to be manually triggered#4227
imnasnainaec wants to merge 2 commits intomasterfrom
gha-deploy-qa-trigger

Conversation

@imnasnainaec
Copy link
Copy Markdown
Collaborator

@imnasnainaec imnasnainaec commented Mar 27, 2026

Allow testing of #4216

https://app.devin.ai/review/sillsdev/TheCombine/pull/4227


This change is Reviewable

Summary by CodeRabbit

  • Chores
    • QA deployment workflow now supports manual triggering with a confirmation gate to allow targeted QA deploys.
    • Installer release workflow now supports manual uploads with a confirmation gate, and updated conditions to run automatically after successful upstream builds.

@imnasnainaec imnasnainaec self-assigned this Mar 27, 2026
@imnasnainaec imnasnainaec added the 🟥High High-priority PR: please review this asap! label Mar 27, 2026
@github-actions github-actions bot added the github_actions Pull requests that update GitHub Actions code label Mar 27, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 27, 2026

📝 Walkthrough

Walkthrough

Added manual workflow_dispatch inputs and updated job run conditions in two GitHub Actions workflows so jobs can run on push events or when a user confirms via the dispatch input; removed strict branch-only gating for the QA deploy and adjusted installer upload gating to require explicit confirmation.

Changes

Cohort / File(s) Summary
QA Deploy Workflow
\.github/workflows/deploy_qa.yml
Added workflow_dispatch with confirm_qa_deploy input; changed deploy_update job if: from github.ref_name == 'master' to `github.event_name == 'push'
Installer Release Workflow
\.github/workflows/installer_release.yml
Added workflow_dispatch input confirm_upload; adjusted make_installer and upload_installer job conditions to run on workflow_run success or on workflow_dispatch when github.event.inputs.confirm_upload == 'UP', removed ${{ }} wrapper from one condition.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant GitHubActions as GitHub Actions
  participant Workflow as Workflow (deploy_qa / installer_release)
  participant Jobs as Jobs (build/make/upload/deploy)

  User->>GitHubActions: trigger via push or workflow_dispatch (with input)
  GitHubActions->>Workflow: start workflow event (push or workflow_dispatch)
  Workflow->>Jobs: evaluate job conditions (event_name, inputs)
  alt Conditions met (push or confirmed dispatch)
    Jobs->>Jobs: run dependent jobs (build -> deploy/make -> upload)
  else Conditions not met
    Jobs-->>User: skip gated jobs
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • jasonleenaylor

Poem

🐰
I hopped to press the shiny button,
Typed "QA" and watched the jobs come runnin',
Pipelines hum, the carrots gleam,
Deploys and uploads — what a dream! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: enabling manual triggering of QA deployments through workflow_dispatch. This directly matches the primary objective of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch gha-deploy-qa-trigger

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 and usage tips.

coderabbitai[bot]

This comment was marked as resolved.

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 75.94%. Comparing base (e0c5628) to head (7dbb84c).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #4227   +/-   ##
=======================================
  Coverage   75.94%   75.94%           
=======================================
  Files         303      303           
  Lines       11352    11352           
  Branches     1407     1407           
=======================================
  Hits         8621     8621           
  Misses       2330     2330           
  Partials      401      401           
Flag Coverage Δ
backend 87.23% <ø> (ø)
frontend 66.79% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
.github/workflows/installer_release.yml (1)

82-82: Consider explicit success check for workflow_run event for clarity.

The condition relies implicitly on the needs: make_installer dependency to prevent uploads when the upstream workflow fails (since make_installer checks github.event.workflow_run.conclusion == 'success'). While functionally correct, an explicit check here would be more defensive and self-documenting.

💡 Optional: Add explicit success check
-    if: github.event_name == 'workflow_run' || (github.event_name == 'workflow_dispatch' && github.event.inputs.confirm_upload == 'UP')
+    if: (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') || (github.event_name == 'workflow_dispatch' && github.event.inputs.confirm_upload == 'UP')
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/installer_release.yml at line 82, Update the job-level if
condition to explicitly require that for the workflow_run trigger the upstream
run concluded successfully: modify the existing condition that reads
"github.event_name == 'workflow_run' || (github.event_name ==
'workflow_dispatch' && github.event.inputs.confirm_upload == 'UP')" so that the
workflow_run branch also checks "github.event.workflow_run.conclusion ==
'success'"; keep the workflow_dispatch branch with the confirm_upload check
unchanged so the combined condition clearly and defensively requires a
successful upstream run or an explicit manual confirmation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/workflows/installer_release.yml:
- Line 82: Update the job-level if condition to explicitly require that for the
workflow_run trigger the upstream run concluded successfully: modify the
existing condition that reads "github.event_name == 'workflow_run' ||
(github.event_name == 'workflow_dispatch' && github.event.inputs.confirm_upload
== 'UP')" so that the workflow_run branch also checks
"github.event.workflow_run.conclusion == 'success'"; keep the workflow_dispatch
branch with the confirm_upload check unchanged so the combined condition clearly
and defensively requires a successful upstream run or an explicit manual
confirmation.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 391c5fc0-ba8b-4027-a444-867342823851

📥 Commits

Reviewing files that changed from the base of the PR and between d255c91 and 7dbb84c.

📒 Files selected for processing (2)
  • .github/workflows/deploy_qa.yml
  • .github/workflows/installer_release.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/deploy_qa.yml

Copy link
Copy Markdown
Contributor

@jasonleenaylor jasonleenaylor left a comment

Choose a reason for hiding this comment

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

:lgtm:

@jasonleenaylor reviewed 2 files and all commit messages, and made 1 comment.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on imnasnainaec).

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

Labels

deployment github_actions Pull requests that update GitHub Actions code 🟥High High-priority PR: please review this asap!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants