Skip to content

ci: consolidate workflow pipeline with dependency chain - #734

Merged
dcoutinho1328 merged 3 commits into
developmentfrom
ci/consolidate-workflow-pipeline
Apr 17, 2026
Merged

ci: consolidate workflow pipeline with dependency chain#734
dcoutinho1328 merged 3 commits into
developmentfrom
ci/consolidate-workflow-pipeline

Conversation

@dcoutinho1328

@dcoutinho1328 dcoutinho1328 commented Apr 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Convert individual CI workflows to reusable (workflow_call)
  • Add orchestrator ci.yml that chains them with needs:
    • Tier 1 (parallel): architecture + build + lint
    • Tier 2: format
    • Tier 3: cross-repo sync
    • Tier 4: code quality
    • Tier 5: Claude code review
    • Tier 6: complete build (3-platform matrix)
  • CodeRabbit continues running as an external GitHub App

Test plan

  • Open a test PR to verify the pipeline runs in order
  • Verify Claude review runs after code quality passes
  • Verify complete build runs last

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Restructured GitHub Actions workflows to use reusable workflow invocations instead of direct event triggers
    • Created a centralized CI orchestration workflow that coordinates multiple build, lint, format, and review jobs
    • Updated workflow naming and metadata configuration

Convert individual CI workflows to reusable (workflow_call) and add
an orchestrator ci.yml that chains them:
  architecture + build + lint (parallel)
    -> format -> sync -> code-quality -> claude-review -> complete-build

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@dcoutinho1328 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 48 minutes and 51 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 48 minutes and 51 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 88dc040d-5e60-40d2-8ade-abb8da57329b

📥 Commits

Reviewing files that changed from the base of the PR and between fd0af72 and 47973d4.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml

Walkthrough

Refactored GitHub Actions CI/CD workflows to use reusable workflow pattern. Converted nine workflow files from direct event triggers (push, pull_request) to workflow_call invocations, enabling centralized orchestration via a new ci.yml workflow that coordinates job execution across multiple reusable workflow modules.

Changes

Cohort / File(s) Summary
Orchestrator Workflow
ci.yml
New workflow that triggers on pull_request events targeting main and development, orchestrating execution of reusable workflows (architecture, build-check, lint, format, sync, code-quality, claude-review, complete-build) with defined needs dependencies for ordered execution.
Reusable Workflow Modules
build.yml, ci-architecture.yml, ci-build.yml, ci-format.yml, ci-lint.yml
Converted from direct event triggers (push or pull_request) to workflow_call to enable invocation as reusable workflows. build.yml renamed from "Build" to "Complete Build"; custom run-name removed from build.yml.
Additional Reusable Workflows
ci-sync.yml, claude-code-review.yml
Converted from direct pull_request triggers to workflow_call invocation. claude-code-review.yml removed commented paths filter block previously tied to PR events.
Code Quality Workflow
code_quality.yml
Converted from push and pull_request triggers to workflow_call. Workflow renamed from "Code quality" to "Code Quality"; custom run-name removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 Workflows hop in unified array,
No more scattered triggers in the fray,
Reusable calls orchestrate the dance,
CI pipelines bloom at a single glance,
Structured, clean—the rabbit's delight! 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the main objectives but lacks most required sections from the template (References, DOD checklist, etc.). Add missing template sections including issue references, acceptance criteria checklist, and completion of all DOD checklist items.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: consolidating CI workflows into a unified pipeline with dependency chains.
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 ci/consolidate-workflow-pipeline

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

Caution

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

⚠️ Outside diff range comments (1)
.github/workflows/code_quality.yml (1)

5-10: ⚠️ Potential issue | 🟡 Minor

quality job has no actual checks — gating Claude review on this is a no-op.

The quality job only checks out the repo and performs no quality analysis (no SonarQube, CodeClimate, linter aggregation, etc.). In the tier chain (Tier 4 → Tier 5), claude-review depends on code-quality via needs, but since this job trivially succeeds, the dependency adds pipeline latency without any gating value. Either add the intended quality step(s) or reconsider whether Tier 4 is needed in the chain.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/code_quality.yml around lines 5 - 10, The "quality" job
currently only performs a checkout and provides no checks; update the workflow
so the "quality" job (job name: quality) either runs actual quality tools (e.g.,
add steps to run linters, static analysis, SonarQube/CodeClimate scans, or
aggregate linter results) or remove the unnecessary dependency from the
downstream "claude-review" job (the needs: code-quality/quality linkage). Modify
the "quality" job to include one or more concrete steps (install dependencies,
run eslint/clang-format/flake8, run Sonar scanner or upload results) and ensure
artifact or status reporting so the "claude-review" dependency actually gates
progress, or instead remove the needs reference to eliminate the no-op gating.
🧹 Nitpick comments (3)
.github/workflows/claude-code-review.yml (1)

34-34: Prompt relies on github.event.pull_request.number — verify caller's event.

${{ github.event.pull_request.number }} will be empty unless ci.yml is triggered by pull_request/pull_request_target. If the orchestrator ever runs on push or workflow_dispatch, the interpolated URL becomes <repo>/pull/ and Claude will get a malformed prompt. Consider exposing the PR number as an explicit workflow_call input to fail fast and document the dependency.

♻️ Suggested hardening
 on:
-  workflow_call:
+  workflow_call:
+    inputs:
+      pr_number:
+        description: 'Pull request number to review'
+        required: true
+        type: string
-          prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}'
+          prompt: '/code-review:code-review ${{ github.repository }}/pull/${{ inputs.pr_number }}'
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/claude-code-review.yml at line 34, The prompt line uses
github.event.pull_request.number which is empty unless the workflow is triggered
by pull_request/ pull_request_target; change the workflow to accept an explicit
workflow_call input (e.g., input name pr_number) and replace
github.event.pull_request.number with that input in the prompt, add a step early
that checks the pr_number input and fails fast with a clear error if it's
missing/empty, and update the workflow docs/description to state that callers
must pass pr_number when invoking the workflow (or only invoke via pull_request
triggers).
.github/workflows/ci.yml (2)

3-7: Consider adding concurrency control to cancel stale runs.

When multiple commits are pushed to a PR in quick succession, this workflow will run for each commit, potentially wasting resources. Consider adding concurrency control to automatically cancel in-progress runs when new commits arrive.

⚡ Proposed addition for concurrency control
 on:
   pull_request:
     branches:
       - main
       - development
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+  cancel-in-progress: true
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/ci.yml around lines 3 - 7, Add a top-level GitHub Actions
concurrency configuration to the workflow to cancel stale runs: under the
existing on: pull_request stanza, add a top-level concurrency block with a
stable group key (for example using github.workflow and github.ref or
github.head_ref) and set cancel-in-progress: true so in-progress runs for the
same PR are cancelled when a new commit is pushed; place this concurrency block
at the root of the workflow YAML so it applies to all jobs in the workflow.

37-39: Consider renaming for clarity.

The job name complete-build calls build.yml, while the earlier build-check job calls ci-build.yml. This naming could be confusing. Consider:

  • Renaming build.yml to ci-build-complete.yml or ci-build-matrix.yml, OR
  • Renaming the job to match the workflow file more clearly

This would make the relationship between job names and workflow files more intuitive.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/ci.yml around lines 37 - 39, The job name complete-build
is ambiguous relative to the referenced workflow file build.yml; either rename
the workflow file (e.g., build.yml -> ci-build-complete.yml or
ci-build-matrix.yml) or rename the job to match the file (e.g., complete-build
-> ci-build or ci-build-matrix) so naming is consistent; update all references
where the job or file name appears (the complete-build job declaration and any
callers like needs: or uses: that reference build.yml) to keep names in sync.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In @.github/workflows/code_quality.yml:
- Around line 5-10: The "quality" job currently only performs a checkout and
provides no checks; update the workflow so the "quality" job (job name: quality)
either runs actual quality tools (e.g., add steps to run linters, static
analysis, SonarQube/CodeClimate scans, or aggregate linter results) or remove
the unnecessary dependency from the downstream "claude-review" job (the needs:
code-quality/quality linkage). Modify the "quality" job to include one or more
concrete steps (install dependencies, run eslint/clang-format/flake8, run Sonar
scanner or upload results) and ensure artifact or status reporting so the
"claude-review" dependency actually gates progress, or instead remove the needs
reference to eliminate the no-op gating.

---

Nitpick comments:
In @.github/workflows/ci.yml:
- Around line 3-7: Add a top-level GitHub Actions concurrency configuration to
the workflow to cancel stale runs: under the existing on: pull_request stanza,
add a top-level concurrency block with a stable group key (for example using
github.workflow and github.ref or github.head_ref) and set cancel-in-progress:
true so in-progress runs for the same PR are cancelled when a new commit is
pushed; place this concurrency block at the root of the workflow YAML so it
applies to all jobs in the workflow.
- Around line 37-39: The job name complete-build is ambiguous relative to the
referenced workflow file build.yml; either rename the workflow file (e.g.,
build.yml -> ci-build-complete.yml or ci-build-matrix.yml) or rename the job to
match the file (e.g., complete-build -> ci-build or ci-build-matrix) so naming
is consistent; update all references where the job or file name appears (the
complete-build job declaration and any callers like needs: or uses: that
reference build.yml) to keep names in sync.

In @.github/workflows/claude-code-review.yml:
- Line 34: The prompt line uses github.event.pull_request.number which is empty
unless the workflow is triggered by pull_request/ pull_request_target; change
the workflow to accept an explicit workflow_call input (e.g., input name
pr_number) and replace github.event.pull_request.number with that input in the
prompt, add a step early that checks the pr_number input and fails fast with a
clear error if it's missing/empty, and update the workflow docs/description to
state that callers must pass pr_number when invoking the workflow (or only
invoke via pull_request triggers).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: c5004896-ded0-4626-a396-62e4e3412562

📥 Commits

Reviewing files that changed from the base of the PR and between 556bc85 and fd0af72.

📒 Files selected for processing (9)
  • .github/workflows/build.yml
  • .github/workflows/ci-architecture.yml
  • .github/workflows/ci-build.yml
  • .github/workflows/ci-format.yml
  • .github/workflows/ci-lint.yml
  • .github/workflows/ci-sync.yml
  • .github/workflows/ci.yml
  • .github/workflows/claude-code-review.yml
  • .github/workflows/code_quality.yml

@coderabbitai

coderabbitai Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Caution

Review failed

An error occurred during the review process. Please try again later.

Walkthrough

Refactored GitHub Actions CI/CD workflows to use reusable workflow pattern. Converted nine workflow files from direct event triggers (push, pull_request) to workflow_call invocations, enabling centralized orchestration via a new ci.yml workflow that coordinates job execution across multiple reusable workflow modules.

Changes

Cohort / File(s) Summary
Orchestrator Workflow
ci.yml
New workflow that triggers on pull_request events targeting main and development, orchestrating execution of reusable workflows (architecture, build-check, lint, format, sync, code-quality, claude-review, complete-build) with defined needs dependencies for ordered execution.
Reusable Workflow Modules
build.yml, ci-architecture.yml, ci-build.yml, ci-format.yml, ci-lint.yml
Converted from direct event triggers (push or pull_request) to workflow_call to enable invocation as reusable workflows. build.yml renamed from "Build" to "Complete Build"; custom run-name removed from build.yml.
Additional Reusable Workflows
ci-sync.yml, claude-code-review.yml
Converted from direct pull_request triggers to workflow_call invocation. claude-code-review.yml removed commented paths filter block previously tied to PR events.
Code Quality Workflow
code_quality.yml
Converted from push and pull_request triggers to workflow_call. Workflow renamed from "Code quality" to "Code Quality"; custom run-name removed.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Poem

🐰 Workflows hop in unified array,
No more scattered triggers in the fray,
Reusable calls orchestrate the dance,
CI pipelines bloom at a single glance,
Structured, clean—the rabbit's delight! 🎉

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the main objectives but lacks most required sections from the template (References, DOD checklist, etc.). Add missing template sections including issue references, acceptance criteria checklist, and completion of all DOD checklist items.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: consolidating CI workflows into a unified pipeline with dependency chains.
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 ci/consolidate-workflow-pipeline

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.

@dcoutinho1328
dcoutinho1328 merged commit df844ee into development Apr 17, 2026
12 checks passed
@dcoutinho1328
dcoutinho1328 deleted the ci/consolidate-workflow-pipeline branch April 17, 2026 17:44
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