Skip to content

chore: fixes deployment workflows#2677

Merged
stalniy merged 1 commit intomainfrom
chore/release-deploy
Feb 5, 2026
Merged

chore: fixes deployment workflows#2677
stalniy merged 1 commit intomainfrom
chore/release-deploy

Conversation

@stalniy
Copy link
Contributor

@stalniy stalniy commented Feb 5, 2026

Why

because currently release trigger deployment with invalid app version

Summary by CodeRabbit

  • Chores
    • Made release image tag optional across deployment workflows and added automatic fallback to the workflow ref when not provided
    • Standardized passing of the target app identifier into deployment setup
    • Stopped forwarding explicit image_tag in some deploy triggers to rely on centralized tag resolution
    • Added enhanced validation and parsing of deployment tags for safer releases

@stalniy stalniy requested a review from a team as a code owner February 5, 2026 13:37
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 5, 2026

📝 Walkthrough

Walkthrough

Release workflows were updated to make image_tag optional and to pass an explicit app identifier to the reusable setup. The reusable deploy setup now derives and validates tags from a provided TAG_NAME/APP and the gh workflow run invocations no longer pass image_tag.

Changes

Cohort / File(s) Summary
Service release workflows
.github/workflows/console-api-release.yml, .github/workflows/console-web-release.yml, .github/workflows/indexer-release.yml, .github/workflows/notifications-release.yml, .github/workflows/provider-proxy-release.yml, .github/workflows/stats-web-release.yml, .github/workflows/tx-signer-release.yml
Made image_tag workflow_dispatch input optional (removed required/default). Setup jobs now include app: <service> and set `image_tag: ${{ inputs.image_tag
Reusable deploy setup
.github/workflows/reusable-deploy-setup.yml
Introduced APP input and read tag from TAG_NAME; added validation that allows tags matching v*, numeric versions, or when package_name equals APP; removed previous "latest" resolution logic; outputs image_tag.
Reusable release triggers
.github/workflows/reusable-release-app.yml, .github/workflows/reusable-release-nextjs-app.yml
Removed passing image_tag from gh workflow run command so deploy triggers no longer supply an explicit image_tag argument.

Sequence Diagram(s)

sequenceDiagram
  participant CallerWorkflow as "Service Release Workflow\n(e.g. console-api-release)"
  participant ReusableSetup as "reusable-deploy-setup\n(action run)"
  participant DeployJobs as "Deploy Jobs\n(deploy-beta/deploy-prod)"

  CallerWorkflow->>ReusableSetup: with app:<service>, image_tag:${{ inputs.image_tag || github.ref_name }}
  Note right of ReusableSetup: Parse TAG_NAME -> package_name, version\nValidate tag (v*, numeric, or package==APP)
  ReusableSetup-->>CallerWorkflow: outputs.image_tag (computed/validated)
  CallerWorkflow->>DeployJobs: start deploy jobs using needs.setup.outputs.image_tag
  DeployJobs-->>CallerWorkflow: deployment progress/results
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • baktun14
  • ygrishajev

Poem

🐰
I hopped through tags both loose and tight,
Now apps are named and fallbacks light,
I validate the carrot's rind,
Echo the tag the trees provide,
Releases bounce — smooth, snug, and bright! 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'chore: fixes deployment workflows' is vague and generic, using non-specific language that doesn't convey the meaningful technical changes (making image_tag optional, adding app parameter, implementing fallback logic). Consider a more specific title like 'chore: make image_tag optional in release workflows with fallback to git ref' to better describe the actual changes.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/release-deploy

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

Copy link
Contributor

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/reusable-deploy-setup.yml (1)

38-41: ⚠️ Potential issue | 🟠 Major

Remove or use package_name to clear shellcheck SC2034.

The variable is unused and currently fails linting.

✅ Suggested fix
-          package_name="${tag%%/*}"
🤖 Fix all issues with AI agents
In @.github/workflows/provider-proxy-release.yml:
- Around line 11-15: The setup step passes an undefined input "app" to the
reusable workflow; either add an "app" input definition to the reusable workflow
file (./.github/workflows/reusable-deploy-setup.yml) or remove the "app:
provider-proxy" line from this workflow's setup invocation. Locate the setup
invocation (uses: ./.github/workflows/reusable-deploy-setup.yml) and either (A)
add a matching inputs.app entry in reusable-deploy-setup.yml so it accepts and
uses the app value, or (B) delete the "app: provider-proxy" parameter here if
the reusable workflow does not require it.

In @.github/workflows/reusable-deploy-setup.yml:
- Around line 24-35: Declare the missing workflow input "app" under
workflow_call (add inputs.app with description, required: true and type: string
alongside inputs.image_tag) and fix the conditional by wrapping the expression
in the GitHub Actions expression syntax (${ { ... } }) so the if becomes if: ${{
!startsWith(inputs.image_tag, format('{0}/v', inputs.app)) }}; ensure you
reference the existing inputs.image_tag and inputs.app names exactly and keep
the validation shell script unchanged.

@stalniy stalniy force-pushed the chore/release-deploy branch from f9acb63 to 88d48d9 Compare February 5, 2026 13:45
@stalniy stalniy merged commit c40d88c into main Feb 5, 2026
54 checks passed
@stalniy stalniy deleted the chore/release-deploy branch February 5, 2026 13:53
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.

1 participant

Comments