Skip to content

feat(ci): add force_multiplatform input to build workflow#93

Merged
bedatty merged 3 commits intodevelopfrom
feat/add-force-multiplatform-input
Mar 12, 2026
Merged

feat(ci): add force_multiplatform input to build workflow#93
bedatty merged 3 commits intodevelopfrom
feat/add-force-multiplatform-input

Conversation

@bedatty
Copy link
Contributor

@bedatty bedatty commented Mar 2, 2026

Description

Add force_multiplatform boolean input to the build workflow, allowing consumers to opt-in to multi-platform builds (amd64+arm64) for
beta/rc tags. By default, beta/rc tags continue building only amd64.

Type of Change

  • feat: New feature or workflow

Affected Workflows

  • GitOps Update
  • API Dog E2E Tests
  • PR Security Scan
  • Release Workflow
  • Other (specify): Build and Push Docker Images

Changes Made

  • Added force_multiplatform boolean input (default: false) to the build workflow
  • Updated platform selection logic to support amd64+arm64 on beta/rc tags when force_multiplatform: true
  • No change to release tag behavior — always builds multi-platform

Breaking Changes

None — default value is false, preserving existing behavior.

Testing

  • Tested locally
  • Tested in development environment
  • Tested with example repository: _______________
  • All existing workflows still work

Checklist

  • Code follows conventional commit format
  • Documentation updated (if applicable)
  • Examples updated (if applicable)
  • No hardcoded secrets or sensitive data
  • Backward compatible (or breaking changes documented)
  • Self-review completed
  • Comments added for complex logic

Related Issues

Additional Notes

Usage in consumer repos:

uses: LerianStudio/github-actions-shared-workflows/.github/workflows/build.yml@verions-released
with:
  force_multiplatform: true

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

* **New Features**
* Added `force_multiplatform` workflow input option to enable multi-platform builds (amd64+arm64) for beta and RC release tags.
* Beta and RC releases now support ARM64 builds when the force_multiplatform option is enabled; release tags continue multi-arch by default.

* **Documentation**
* Updated build workflow documentation with detailed platform build strategy and guidance on using the new multi-platform option.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

@coderabbitai
Copy link

coderabbitai bot commented Mar 2, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 19e3f8f6-70da-41bb-901e-c39cd149eb63

📥 Commits

Reviewing files that changed from the base of the PR and between fe57eec and 949405d.

📒 Files selected for processing (2)
  • .github/workflows/build.yml
  • docs/build-workflow.md

Walkthrough

Adds a boolean workflow input force_multiplatform to the build workflow and updates platform selection: beta/RC tags build amd64 only by default but will include arm64 when force_multiplatform: true; release tags remain multi-arch. QEMU setup now follows the computed platforms (arm64 presence).

Changes

Cohort / File(s) Summary
Build workflow
\.github/workflows/build.yml
Adds force_multiplatform workflow input; adjusts beta/rc platform decision to respect this input; changes QEMU setup conditional to run when computed platforms include arm64; updates logging/messages.
Documentation
docs/build-workflow.md
Documents the new force_multiplatform input and updates platform strategy table and ARM64 guidance to reflect beta/rc default amd64-only behavior and the option to force multi-arch.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Sequence Diagram(s)

mermaid
sequenceDiagram
participant GitHub as GitHub (push/tag)
participant Workflow as build.yml
participant Matrix as Platform Matrix Generator
participant QEMU as QEMU Setup
participant Runner as Build Runner (buildx)
participant Registry as Image Registry

GitHub->>Workflow: trigger (tag/push)
Workflow->>Workflow: read inputs (force_multiplatform) and tag type
Workflow->>Matrix: determine platforms (amd64 or amd64+arm64)
Matrix-->>Workflow: platforms list
alt arm64 included
Workflow->>QEMU: prepare QEMU/emulation
QEMU-->>Workflow: QEMU ready
end
Workflow->>Runner: run build jobs for platforms
Runner->>Registry: push multi-arch manifest and images
Registry-->>Runner: push complete

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely describes the main change: adding a force_multiplatform input to the build workflow.
Description check ✅ Passed The description covers required sections: clear summary, Type of Change marked, affected workflows specified, changes documented, no breaking changes, testing notes provided, and checklists completed.
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 feat/add-force-multiplatform-input
📝 Coding Plan for PR comments
  • Generate coding plan

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

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

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/build.yml:
- Around line 167-175: The QEMU setup currently gated on is_release == 'true'
misses the case where inputs.force_multiplatform=true sets
platforms="linux/amd64,linux/arm64", causing arm64 jobs to run without
emulation; update the conditional that determines whether to run the QEMU setup
(the check near the QEMU setup block referenced by is_release and platforms) to
instead detect whether the platforms output contains "linux/arm64" (or otherwise
indicates an arm64 target) and run QEMU when arm64 is present; keep existing
behavior for pure amd64 builds.

ℹ️ Review info

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a96ac6b and 3815633.

📒 Files selected for processing (2)
  • .github/workflows/build.yml
  • docs/build-workflow.md

@bedatty bedatty self-assigned this Mar 2, 2026
@bedatty bedatty requested a review from a team as a code owner March 12, 2026 15:15
@bedatty bedatty merged commit 896c92f into develop Mar 12, 2026
2 checks passed
@github-actions github-actions bot deleted the feat/add-force-multiplatform-input branch March 12, 2026 15:19
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