-
Notifications
You must be signed in to change notification settings - Fork 5
🐛 fix arm64 transient fault for linux#145
Conversation
📝 WalkthroughWalkthroughAdds architecture matrix (X64, ARM64) to CI build and test jobs, conditionally selects ARM-specific runners, updates artifact naming/download to include arch, and adjusts integration_test to explicitly download X64 build artifacts. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
No actionable comments were generated in the recent review. 🎉 🧹 Recent nitpick comments
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
.github/workflows/ci-pipeline.yml (1)
57-66:⚠️ Potential issue | 🟠 MajorPack job will fail to find build artifacts with the new naming scheme.
The
buildjob now uploads artifacts asbuild-{config}-{arch}(e.g.,build-Debug-X64,build-Debug-ARM64), but thepackjob doesn't pass adownload-patternparameter. The test jobs work around this by explicitly specifyingdownload-pattern: build-${{ matrix.configuration }}-${{ matrix.arch }}, but the pack job is missing this parameter.Additionally, the pack job's matrix only includes
configuration(noarch), so it cannot construct an arch-aware pattern. When the pack workflow tries to download artifacts, it will either fail or attempt to download the wrong artifacts.Add
download-patternto the pack job, likelydownload-pattern: build-${{ matrix.configuration }}-X64(or whichever architecture should be used for packaging):Suggested change
pack: name: call-pack needs: [build] strategy: matrix: configuration: [Debug, Release] uses: codebeltnet/jobs-dotnet-pack/.github/workflows/default.yml@v3 with: configuration: ${{ matrix.configuration }} version: ${{ needs.build.outputs.version }} download-pattern: build-${{ matrix.configuration }}-X64
🧹 Nitpick comments (1)
.github/workflows/ci-pipeline.yml (1)
139-227: Consider removing or reducing this extensive diagnostic step.This ~90-line diagnostic bash script in the
integration_testjob outputs detailed filesystem, ELF binary, and mount diagnostics. Now that the ARM64 transient fault is being addressed via arch-specific matrix jobs and runners, this troubleshooting code may no longer be needed. If you still want to keep some diagnostics, consider trimming it to just the essentialchmodcommand (line 168) and a brief summary, rather than the full deep-dive.
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 pull request refactors the CI pipeline to use architecture-based matrix strategies instead of OS-based ones, addressing ARM64 transient faults on Linux. The changes introduce explicit architecture dimensions (X64, ARM64) to build and test jobs, update artifact naming to include architecture information, and ensure proper artifact downloads across all test environments.
Changes:
- Introduced architecture-based matrix strategy (
arch: [X64, ARM64]) for build and test jobs, replacing OS-based matrices - Updated artifact naming convention to include both configuration and architecture (e.g.,
build-Debug-X64) - Added architecture-specific
download-patternparameters to test jobs to ensure correct artifact retrieval
Quality Gate Passed Quality Gate passed
Issues
0 New issues
0 Accepted issues
Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code
Codecov Report
✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.53%. Comparing base (f95659e) to head (eecfb5b).
Additional details and impacted files
@@ Coverage Diff @@ ## main #145 +/- ## ======================================= Coverage 80.53% 80.53% ======================================= Files 598 598 Lines 18826 18839 +13 Branches 1934 1936 +2 ======================================= + Hits 15161 15172 +11 - Misses 3599 3601 +2 Partials 66 66
☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.
🚀 New features to boost your workflow:
- ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
Uh oh!
There was an error while loading. Please reload this page.
This pull request updates the CI pipeline workflow to improve support for multiple architectures and streamline artifact handling. The main focus is on replacing OS-based matrix strategies with architecture-based ones, updating artifact naming conventions, and ensuring proper artifact download patterns.
CI Pipeline architecture and artifact improvements:
arch(X64,ARM64) instead ofos, simplifying cross-platform support and making the workflow easier to maintain. ([[1]](https://github.com/codebeltnet/cuemon/pull/145/files#diff-6aa4809fbc7f18724c21281e7408804202ca7692ad5a25b32167f8301906c850R45-R52),[[2]](https://github.com/codebeltnet/cuemon/pull/145/files#diff-6aa4809fbc7f18724c21281e7408804202ca7692ad5a25b32167f8301906c850L71-R103))runs-onparameter in build and test jobs to dynamically select the runner based on thearchvalue, improving clarity and reducing redundancy. ([[1]](https://github.com/codebeltnet/cuemon/pull/145/files#diff-6aa4809fbc7f18724c21281e7408804202ca7692ad5a25b32167f8301906c850R45-R52),[[2]](https://github.com/codebeltnet/cuemon/pull/145/files#diff-6aa4809fbc7f18724c21281e7408804202ca7692ad5a25b32167f8301906c850L71-R103))build-Debug-X64), and updated the artifact download pattern to match this new naming scheme, ensuring correct artifact retrieval for each architecture. ([[1]](https://github.com/codebeltnet/cuemon/pull/145/files#diff-6aa4809fbc7f18724c21281e7408804202ca7692ad5a25b32167f8301906c850R45-R52),[[2]](https://github.com/codebeltnet/cuemon/pull/145/files#diff-6aa4809fbc7f18724c21281e7408804202ca7692ad5a25b32167f8301906c850L71-R103),[[3]](https://github.com/codebeltnet/cuemon/pull/145/files#diff-6aa4809fbc7f18724c21281e7408804202ca7692ad5a25b32167f8301906c850L131-R136))Summary by CodeRabbit