-
Notifications
You must be signed in to change notification settings - Fork 721
Experimental macOS CI #3141
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
Experimental macOS CI #3141
Conversation
ff2b48e to
1825667
Compare
|
I will remove the test shim commit (9fc64f2) prior to merging - it's there to show the workflow in operation. |
Motivation: To expand test coverage to the Darwin platforms. Modifications: Create a new re-usable workflow 'macos_tests.yml' which offers testing and compilation checks for multiple Xcodes and simulator destinations. The new workflow first performs `swift test` with configurable parameters and then goes on to build the code targetting generic targets for: * macOS * iOS * watchOS * tvOS * visionOS At the moment this is workflow is enabled to run on the NIO repository: * on each commit to a PR * on each merge to `main` * overnight on a timer This will likely be revised due to capacity. Result: Increased test coverage.
| @@ -0,0 +1,157 @@ | |||
| name: macOS tests | |||
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.
Why do we provide a separate workflow for this instead of inside the existing testing workflow? We can disable it by default there but in the end all of our projects want to test on macOS and it would be easier to roll it out wide without requiring a new workflow. Maybe I'm missing something though.
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.
I tried to give a nod to this in the description but perhaps more detail is needed:
This functionality is implemented as a standalone workflow to preserve flexibility as requirements and capacity change over time.
The pattern of use (on PRs?, run nightly?), requirements, and node capacity are likely to be in flux over the short term as more repositories are onboarded and we understand load - I wanted to reserve as much flexibility as possible. I agree in an ideal world they'd be one matrix.
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 actual task(s) we're performing here is also very different, we want to run a bunch of checks on one node to avoid the recycle time, not just swift test.
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.
Makes sense. Thanks for expanding
Enable macOS CI
Motivation:
To expand test coverage to the Darwin platforms.
Modifications:
Create a new re-usable workflow
macos_tests.ymlwhich offers testing and compilation checks for multiple Xcodes and simulator destinations.The new workflow first performs
swift testwith configurable parameters and then goes on to build the code targeting generic destinations for:At the moment this is workflow is enabled to run on the NIO repository:
mainThis will likely be revised due to capacity.
This functionality is implemented as a standalone workflow to preserve flexibility as requirements and capacity change over time.
Result:
Increased test coverage.