-
Notifications
You must be signed in to change notification settings - Fork 32
ci: update ci build matrix #316
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
> The macOS-13 based runner images are being deprecated, consider switching to macOS-15 (macos-15-intel) or macOS 15 arm64 (macos-latest) instead
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #316 +/- ##
==========================================
+ Coverage 92.38% 96.42% +4.04%
==========================================
Files 7 7
Lines 735 784 +49
==========================================
+ Hits 679 756 +77
+ Misses 56 28 -28 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR consolidates ARM architecture testing by removing the separate UnitTestArm.yml workflow and integrating ARM testing into the main UnitTest.yml workflow. The changes modernize the CI configuration by adding concurrency controls, updating Julia version specifiers, and attempting to use native ARM runners instead of emulation.
Key Changes:
- Removes separate ARM workflow that used Docker-based emulation via
uraimo/run-on-arch-action - Adds concurrency configuration to cancel redundant PR builds
- Updates Julia version testing from '1.6' to 'lts' and attempts to add native ARM runner support
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
.github/workflows/UnitTestArm.yml |
Deleted - separate ARM workflow using Docker emulation removed |
.github/workflows/UnitTest.yml |
Updated to consolidate testing, add concurrency controls, attempt ARM runner integration, and modernize Julia version specs |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| matrix: | ||
| julia-version: ['1.6', '1'] | ||
| os: [ubuntu-latest, windows-latest, macos-13] | ||
| julia-version: ['lts', '1'] |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The removal of Julia '1.0' from the test matrix is inconsistent with the package's compatibility declaration in Project.toml, which specifies 'julia = "1"' (meaning Julia 1.0+). The previous UnitTestArm.yml workflow tested Julia 1.0. If the package still claims to support Julia 1.0, it should be tested in CI. If Julia 1.0 support is being dropped, the Project.toml compat entry should be updated accordingly.
| matrix: | ||
| julia-version: ['1.6', '1'] | ||
| os: [ubuntu-latest, windows-latest, macos-13] | ||
| julia-version: ['lts', '1'] |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The 'nightly' Julia version has been removed from the test matrix. While this simplifies CI, testing against nightly builds can help catch compatibility issues early before new Julia versions are released. Consider whether removing nightly testing is intentional and aligns with the project's maintenance goals.
| julia-version: ['1.6', '1'] | ||
| os: [ubuntu-latest, windows-latest, macos-13] | ||
| julia-version: ['lts', '1'] | ||
| os: [ubuntu-latest, windows-latest, macos-15-intel] |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The runner name 'macos-15-intel' does not appear to be a valid GitHub-hosted runner. As of macOS 15, GitHub-hosted runners use ARM64 (Apple Silicon) architecture. For Intel-based macOS runners, you should use 'macos-13' which is the last Intel-based macOS runner provided by GitHub. If you need Intel testing on macOS, consider using 'macos-13', or if you want the latest macOS on ARM, use 'macos-latest' or 'macos-15'.
| os: [ubuntu-latest, windows-latest, macos-15-intel] | |
| os: [ubuntu-latest, windows-latest, macos-13] |
.github/workflows/UnitTest.yml
Outdated
| - os: ubuntu-24.04-arm | ||
| julia-version: 'lts' | ||
| julia-arch: aarch64 | ||
| - os: ubuntu-24.04-arm |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The runner name 'ubuntu-24.04-arm' does not appear to be a standard GitHub-hosted runner. GitHub does not currently provide ARM-based Ubuntu runners as standard hosted runners. If ARM testing on Ubuntu is required, you would typically need to use self-hosted runners or alternative solutions. Consider using 'ubuntu-latest' with emulation (via setup-julia's arch parameter), or set up self-hosted ARM runners. If this is intended to be a self-hosted runner, ensure it's properly configured in your repository settings.
| - os: ubuntu-24.04-arm | |
| julia-version: 'lts' | |
| julia-arch: aarch64 | |
| - os: ubuntu-24.04-arm | |
| - os: ubuntu-latest | |
| julia-version: 'lts' | |
| julia-arch: aarch64 | |
| - os: ubuntu-latest |
| matrix: | ||
| julia-version: ['1.6', '1'] | ||
| os: [ubuntu-latest, windows-latest, macos-13] | ||
| julia-version: ['lts', '1'] |
Copilot
AI
Dec 12, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The julia-version has been changed from '1.6' to 'lts'. While 'lts' is a valid specifier that should resolve to the current LTS version, note that this is a semantic change. The 'lts' specifier will automatically update to newer LTS versions when they are released, whereas '1.6' was pinned. This could introduce unexpected behavior changes in CI if a new LTS version is released. Consider whether this automatic updating behavior is desired.
Test with:
[ubuntu-latest, windows-latest, macos-15-intel]x[x64]x['lts', '1']macos-latestx[aarch64]x['lts', '1']ubuntu-latestx[x86]x['1']ubuntu-24.04-armx[aarch64]x['1']replace #313, fix #315