Skip to content

Conversation

@MungoG
Copy link
Contributor

@MungoG MungoG commented Jan 23, 2026

Summary by CodeRabbit

  • Chores
    • Updated CI/CD pipeline configuration to improve build consistency across different compiler variants, particularly for MSVC builds.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 23, 2026

📝 Walkthrough

Walkthrough

The GitHub Actions CI workflow configuration has been updated to modify how MSVC builds are tested. For MSVC compilers, the matrix now uses combined debug and release build variants instead of the direct matrix.build-type, while non-MSVC compilers maintain the original behavior.

Changes

Cohort / File(s) Summary
CI Workflow Configuration
.github/workflows/ci.yml
Modified MSVC build matrix to use combined "debug,release" build-variant instead of matrix.build-type; non-MSVC compilers unchanged

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 A workflow refined with surgical care,
Debug and release, a test-variant pair,
For MSVC's march through the pipeline so fast,
CI gates stand stronger, quality held fast! ✨

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Also test on MSVC with error-checked standard library' directly relates to the main change: MSVC builds now use a combined debug and release variant for expanded testing coverage.

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


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

@cppalliance-bot
Copy link

An automated preview of the documentation is available at https://68.corosio.prtest3.cppalliance.org/index.html

If more commits are pushed to the pull request, the docs will rebuild at the same URL.

2026-01-23 10:18:21 UTC

Copy link

@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: 1

🤖 Fix all issues with AI agents
In @.github/workflows/ci.yml:
- Around line 360-363: The workflow passes "debug,release" into the
build-variant input (via build-variant: ${{ (matrix.compiler == 'msvc' &&
'debug,release') || matrix.build-type }}) but the alandefreitas/cpp-actions
b2-workflow expects a single variant string; change the matrix to include a
dedicated matrix key (e.g., matrix.build-variant) with separate values "debug"
and "release" for MSVC and update the action invocation to use build-variant:
${{ matrix.build-variant }} (or map matrix.compiler to a single build-variant
per job) so each job runs one valid variant at a time.

Comment on lines 360 to 363
modules: corosio
toolset: ${{ matrix.b2-toolset }}
build-variant: ${{ matrix.build-type }}
build-variant: ${{ (matrix.compiler == 'msvc' && 'debug,release') || matrix.build-type }}
cxx: ${{ steps.setup-cpp.outputs.cxx || matrix.cxx || '' }}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

alandefreitas/cpp-actions b2-workflow build-variant input format documentation

💡 Result:

In alandefreitas/cpp-actionsb2-workflow, the build-variant input is a single string naming the build variant. The action accepts CMake-style build types and maps them to B2, or you can pass a custom B2 variant name directly: Releaserelease, Debugdebug, RelWithDebInforelease plus debug-symbols=on, and anything else is lowercased and used as the B2 variant. If build-variant is not set, it falls back to B2_BUILD_VARIANT, otherwise to build-type. [1]

Related: in B2 itself, the built-in variant feature’s standard values are debug and release. [2]

Sources
[1] B2 Workflow action docs (build-variant mapping and fallback rules) (alandefreitas.github.io)
[2] B2 manual (variant values) (bfgroup.xyz)

Citations:


The build-variant input expects a single variant string, not comma-separated values.

Line 362 passes debug,release to build-variant, but the alandefreitas/cpp-actions b2-workflow action accepts only a single variant per invocation. B2 will treat debug,release as a literal variant name (which does not exist) and the build will fail or skip the intended variants. To build both debug and release for MSVC, use a matrix strategy to invoke the workflow multiple times with separate build-variant values.

🤖 Prompt for AI Agents
In @.github/workflows/ci.yml around lines 360 - 363, The workflow passes
"debug,release" into the build-variant input (via build-variant: ${{
(matrix.compiler == 'msvc' && 'debug,release') || matrix.build-type }}) but the
alandefreitas/cpp-actions b2-workflow expects a single variant string; change
the matrix to include a dedicated matrix key (e.g., matrix.build-variant) with
separate values "debug" and "release" for MSVC and update the action invocation
to use build-variant: ${{ matrix.build-variant }} (or map matrix.compiler to a
single build-variant per job) so each job runs one valid variant at a time.

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