Skip to content

ci: expands GitHub actions to include multiplatform CI closes #26 - #59

Merged
runcom merged 1 commit into
containers:mainfrom
rosygmiki:multi-platform
Mar 17, 2026
Merged

ci: expands GitHub actions to include multiplatform CI closes #26#59
runcom merged 1 commit into
containers:mainfrom
rosygmiki:multi-platform

Conversation

@rosygmiki

@rosygmiki rosygmiki commented Mar 10, 2026

Copy link
Copy Markdown
Collaborator

CI: Multi-platform testing

  • Added matrix.os in ci.yml to run builds on multiple architectures

Makefile: Version detection and coverage

  • Version variable: Updated version detection because grep -P (Perl regex) is not supported by BSD grep on macOS.
  • Coverage: Added coverage output files for more reliable test coverage data and to fix the 'go: no such tool covdata' error in integration test.

Tests/test.sh: Windows compatibility

  • Adjusted tests/test.sh file for Windows. Symlink creation requires admin or special permissions on Windows, so the script now uses PowerShell where needed, for cross-platform compatibility.

@gemini-code-assist

Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the project's continuous integration by introducing multi-platform testing across various operating systems. It also refines the build process by improving version detection and standardizing Go test coverage data collection. Furthermore, the changes ensure better cross-platform compatibility for integration tests, particularly on Windows, by adapting shell scripts to handle OS-specific file system operations.

Highlights

  • Multi-platform CI: Expanded GitHub Actions to include multi-platform testing using a matrix strategy for different operating systems.
  • Makefile Enhancements: Improved version detection for macOS compatibility and configured Go coverage data handling for more reliable test coverage.
  • Windows Test Compatibility: Adjusted the test.sh script to correctly create symlinks and hardlinks on Windows using PowerShell, addressing OS-specific permission issues.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • Makefile
    • Updated the VERSION variable extraction to be compatible with BSD grep on macOS.
    • Introduced GOCOVERDIR variable for managing Go coverage output.
    • Modified the build target to create the coverage directory and build binaries with coverage enabled.
    • Added removal of GOCOVERDIR to the clean target.
    • Refactored integration-test to use GOCOVERDIR and report coverage percentage.
    • Updated unit-test to generate coverage profiles in GOCOVERDIR and display function coverage.
    • Added a conditional check in the validate target to skip gofmt on Windows.
  • tests/test.sh
    • Implemented logic to detect the operating system, specifically for Windows.
    • Replaced direct tar command calls with a TAR variable to support gtar on macOS.
    • Modified create_orig function to use PowerShell for creating symlinks and hardlinks on Windows, and to skip broken symlinks.
    • Modified modify_orig function to use PowerShell for creating hardlinks on Windows.
    • Updated compress_tar function to use -k instead of --keep for gzip and bzip2 for broader compatibility.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/ci.yml
Activity
  • No human activity has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request does a good job of improving multi-platform support for the CI/CD pipeline. The changes in the Makefile and tests/test.sh to handle different operating systems like Windows and macOS are well-implemented, particularly the use of PowerShell for creating links on Windows and making shell commands more portable. The introduction of improved test coverage reporting is also a valuable addition.

I've found one critical issue in the Makefile where the new version detection logic is faulty and will cause builds to fail. My review includes a specific suggestion to fix this.

Comment thread Makefile Outdated
Comment thread tests/test.sh Outdated
Comment thread tests/test.sh Outdated
Comment thread tests/test.sh
Comment thread Makefile
Comment thread Makefile
Comment thread Makefile
@rosygmiki rosygmiki linked an issue Mar 11, 2026 that may be closed by this pull request
Comment thread tests/test.sh
djach7
djach7 previously requested changes Mar 12, 2026
Comment thread .github/workflows/ci.yml Outdated
Comment thread tests/test.sh Outdated
Comment thread tests/test.sh Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
@rosygmiki
rosygmiki force-pushed the multi-platform branch 9 times, most recently from e36edbf to 1ba430f Compare March 12, 2026 20:52

@mmartinv mmartinv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Just one super nit coming from my OCD, it LGTM otherwise. Thanks!

Comment thread .github/workflows/ci.yml Outdated
Signed-off-by: Rosy-Glorious Miki <rmiki@redhat.com>

@mmartinv mmartinv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM, Great work! Thanks!

@mmartinv
mmartinv requested a review from djach7 March 17, 2026 06:34
@runcom
runcom merged commit 654b18a into containers:main Mar 17, 2026
12 checks passed
@semanticreleasebot-rmiki

Copy link
Copy Markdown

🎉 This PR is included in version 0.2.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@rosygmiki
rosygmiki deleted the multi-platform branch March 17, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add multi-platform CI (macOS, Windows)

4 participants