-
Notifications
You must be signed in to change notification settings - Fork 76
Add macOS to CI test matrix #888
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
Conversation
|
We need to consider that this triples the number of Test actions that need to run for each workflow (3 rust toolchains x 3 OSes). I don't know what our Action Runner limits are, or how these OSes vary in performance, but we should keep those in mind. |
Pull Request Test Coverage Report for Build 17923076448Details
💛 - Coveralls |
I did a bit of research about this, rust projects like ripgrep uses scheduled testing for the full matrix, and reqwest tests stable on all platforms, MSRV only on Linux. Maybe we could try a tiered approach:
|
|
The failing CI checks on the new macOS and Windows runners is due to the linux specific |
It more than triples, unfortunately: https://docs.github.com/en/billing/managing-billing-for-your-products/about-billing-for-github-actions#minute-multipliers
that last link is very confusing since it talks about storage but seems to implicate minutes per month, and it seems we're over that limit: https://github.com/payjoin/rust-payjoin/actions/metrics/usage but we also use way less than say bitcoin core or ldk, so i think it must be the wrong link |
|
hmm, public repos don't seem to fall under the free tier limits, so if this is true then i don't think there's a problem, but we should verify from some authoritative source so that we don't end up unable to run the basic tests: |
|
I think we can keep this simple and less wasteful by keeping the toolchain matrix as-is for linux, and only run the test suite on the |
132c1dd to
609be8c
Compare
609be8c to
7040cca
Compare
ffc7573 to
991db46
Compare
macOS CI Test FailuresUnit Test ErrorWhen running only unit tests on macOS, I encounter: Integration Test Failures Test Failures (6 failed tests)failures:---- integration::multiparty::ns1r stdout ---- ---- integration::v2::test_bad_ohttp_keys stdout ---- ---- integration::v2::test_err_response stdout ---- ---- integration::v2::test_session_expiration stdout ---- ---- integration::v2::v1_to_v2 stdout ---- ---- integration::v2::v2_to_v2 stdout ---- test result: FAILED. 7 passed; 6 failed; 1 ignored; 0 measured; 0 filtered out; finished in 15.67s Unit Test Issue: Missing v1 module in send module |
|
To get docker on MacOS CI you will need to manually include it rust-payjoin/.github/workflows/python.yml Lines 89 to 91 in a5d82d1
|
991db46 to
05d11ad
Compare
CI hit this: Edit: |
05d11ad to
df37e8c
Compare
.github/workflows/rust.yml
Outdated
|
|
||
| Test-Stable-macOS: | ||
| name: Stable tests on macOS | ||
| runs-on: macos-12 |
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.
Lets use macos-13 as this is still supported in the setup-docker-macos-action, as well its what we are already using in our python CI for consistency
https://github.com/douglascamata/setup-docker-macos-action?tab=readme-ov-file#currently-supported-public-runner-images
df37e8c to
311bba2
Compare
|
Perhaps this PR should wait on #915 which will remove the docker dependency entirely. Currently the macOS docker CI step is very slow and error-prone (Docker setup step took 5min in this recent run https://github.com/payjoin/rust-payjoin/actions/runs/16723381144/job/47332768078, and appears to be hanging in the CI for this PR). |
|
it should be possible to rebase this on the redis PR to see if that fixes things |
311bba2 to
97821fb
Compare
|
This is no longer blocked as of 92a3154 |
|
I'm partial towards closing this as wontfix per #877 (comment) but don't feel strongly about it. |
a7168ed to
5138bcd
Compare
@benalleng macos-latest causes the Continuous integration / Stable tests on macOS (pull_request) to fail, reason I pushed again without it. |
I'd like to at least see what is actually added to the CI time/flow without any docker stuff before making a decision here |
5138bcd to
38b10dd
Compare
|
With no caching it sits at 7 minutes, while this is too long right now I would like to see the time reduction with caching |
|
Re-ran that job, it took 3 min with cache hit which is ~1 min (50%) longer than on the ubuntu runner |
|
Since this is no longer blocked, the actual differences between the ubuntu and macOs runners on the payjoin crate just don't seem large enough to justify a new runner. Which now is the longest runner in the payjoin crate atm. Especially with the docker and redis dependency gone these runners are mostly identical, any differences that come about like perhaps a new dependency failure on macOs or ubuntu would quickly become apparent by our devs.
-spacebear |
This pull request addresses issue #877 by adding macOS to the CI test matrix. This will help catch platform-specific bugs in the future.