Add multiarch support - #9
Conversation
WalkthroughThe GitHub Actions CI workflow was changed to use an include-based matrix that lists explicit platform/architecture combinations (ubuntu-x64, ubuntu-arm64, macos-x64, macos-arm64, windows-x64). Job naming and runs-on now reference matrix properties and a new arch-specific preparation step was added. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ci.yaml(2 hunks)
🧰 Additional context used
🪛 actionlint (1.7.9)
.github/workflows/ci.yaml
30-30: label "ubuntu-latest-arm" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file
(runner-label)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Build and Test - windows-latest - x64
🔇 Additional comments (2)
.github/workflows/ci.yaml (2)
65-68: Clarify the purpose of thePrepare for arch-specific buildstep.This step echoes
ARCHandRUNS_ONbut does not export them as environment variables or perform any actual preparation. If this is meant to be informational only (for logging), consider renaming it to reflect that intent (e.g., "Log build configuration"). If it's intended to set up environment variables for downstream steps, export them explicitly using GitHub Actions' syntax.
34-34: Verify macOS runner strategy for architecture consistency.Both macOS entries (x64 and arm64) use
macos-latest, which may not explicitly guarantee the expected architecture. Clarify whether:
macos-latestautomatically handles architecture selection, or- Architecture-specific runner labels should be used (e.g.,
macos-15-xlargefor Intel, which is explicitly x64).This is important to ensure that the arm64 build actually runs on Apple Silicon hardware.
Also applies to: 39-39
| # - name: windows-arm64 | ||
| # runs-on: windows-2022-arm # example — likely self-hosted / not available by default | ||
| # arch: arm64 | ||
| name: Build and Test - ${{ matrix.runs-on}} - ${{matrix.arch}} |
There was a problem hiding this comment.
Fix inconsistent spacing in job name expression.
The job name has inconsistent spacing around matrix variables: ${{ matrix.runs-on}} (space before, not after) vs ${{matrix.arch}} (no spaces). Normalize for consistency.
- name: Build and Test - ${{ matrix.runs-on}} - ${{matrix.arch}}
+ name: Build and Test - ${{ matrix.runs-on }} - ${{ matrix.arch }}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| name: Build and Test - ${{ matrix.runs-on}} - ${{matrix.arch}} | |
| name: Build and Test - ${{ matrix.runs-on }} - ${{ matrix.arch }} |
🤖 Prompt for AI Agents
.github/workflows/ci.yaml around line 52: the job name expression uses
inconsistent spacing in the matrix variables (`${{ matrix.runs-on}}` vs
`${{matrix.arch}}`); normalize spacing so both variables use the same style
(e.g., `${{ matrix.runs-on }}` and `${{ matrix.arch }}`) to ensure consistent
formatting across the workflow file.
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
.github/workflows/ci.yaml (2)
52-52: Fix spacing inconsistency in job name expression.The job name expression uses inconsistent spacing:
${{ matrix.name}}lacks a space before the closing braces. Normalize to match standard formatting.- name: Build and Test - ${{ matrix.name}} + name: Build and Test - ${{ matrix.name }}
65-68: Clarify intent of arch-specific preparation step.The step echoes matrix values but does not export them as environment variables. If these values are meant to be used by subsequent steps, they should be written to
$GITHUB_ENV. If this step is only for logging/diagnostics, consider inlining the echo into a step that uses them, or clarify the purpose with a comment.Additionally, the echo statement on line 67 joins both variables in a single echo. Consider separating them for clarity:
- - name: Prepare for arch-specific build - run: | - echo "ARCH=${{ matrix.arch }} RUNS_ON=${{ matrix.runs-on }}" + - name: Prepare for arch-specific build + run: | + echo "ARCH=${{ matrix.arch }}" + echo "RUNS_ON=${{ matrix.runs-on }}"Or, if you need these as environment variables for downstream steps:
+ - name: Prepare for arch-specific build + run: | + echo "ARCH=${{ matrix.arch }}" >> $GITHUB_ENV + echo "RUNS_ON=${{ matrix.runs-on }}" >> $GITHUB_ENV
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/ci.yaml(2 hunks)
🔇 Additional comments (1)
.github/workflows/ci.yaml (1)
22-51: Good use of include-based matrix for explicit multiarch combinations.The include-based matrix structure clearly defines platform/architecture combinations with helpful comments. Runner labels (
ubuntu-24.04-arm,macos-latest,windows-latest) align with GitHub Actions' available labels, and the intentional omission of Windows ARM (with explanation) is appropriate.
Summary by CodeRabbit
Release Notes
✏️ Tip: You can customize this high-level summary in your review settings.