Skip to content
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

MAINT: run ci builds on windows and macos #166

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

MridulS
Copy link
Member

@MridulS MridulS commented Apr 25, 2024

We shouldn't be skipping windows runs on CI.

@jl-wynen
Copy link
Member

At least some errors found in scipp/scippnexus#209 (workflow https://github.com/scipp/scippnexus/actions/runs/8831464559/job/24246765597) relate to the known int32 / int64 discrepancy between Unix and Windows. Those mostly show up because of how test data is defined. But we should make sure it is not caused by any library code.

@MridulS MridulS enabled auto-merge April 25, 2024 12:06
@MridulS
Copy link
Member Author

MridulS commented Apr 25, 2024

But we should make sure it is not caused by any library code.

Yeah I guess the only to find it out is to start running CI on windows.

@@ -37,7 +37,7 @@ jobs:
needs: formatting
strategy:
matrix:
os: ['ubuntu-22.04']
os: ['ubuntu-22.04', 'windows-latest']
Copy link
Member

Choose a reason for hiding this comment

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

In the past, we had issues with windows builds taking much longer than linux or osx.
I don't remember if it was a compiling (scipp's C++ code) or a conda issue or something else, but I think we should check build times on various projects before going ahead with this.
It would not be great if everyone's builds just get a lot slower, in addition to the fact that we would be using two builders for the tests instead of 1 (and we only have 20 across the entire organisation).

I can see that building on PRs would be better than a weekly cron job (catch things as early as possible), so if the builds are not too long, we should do it. We should then maybe think again about paying for additional runners?

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes we can make this a weekly cron job if we see things are getting slow.

It shouldn't really take that long with the pure python projects.

Copy link
Member

Choose a reason for hiding this comment

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

In my experience with Scitacean (Python only), the Windows jobs are significantly slower than Linux. But MacOs is even slower. So Windows is not such a problem when we don't have to compile C++.

Does the limit of 20 apply across OSs?

Copy link
Member

Choose a reason for hiding this comment

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

Maybe we also have to get better with splitting our test suites into short and long tests? In particular in ESSsans there is a fair number of tests on larger files that add up to a significant runtime, and it will likely get worse.

Copy link
Member Author

Choose a reason for hiding this comment

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

Does the limit of 20 apply across OSs?

Yeah, it's not per repo limit. It depends on the plan of the organisation.

Should I just make this a weekly cron job?

@MridulS
Copy link
Member Author

MridulS commented May 24, 2024

Should I just make this a weekly cron job?

@nvaytet
Copy link
Member

nvaytet commented Jun 18, 2024

Putting this on the board so we don't forget about it.

@MridulS
Copy link
Member Author

MridulS commented Jun 24, 2024

Now that this is weekly cron job I have added a windows and a macos test run.

@MridulS MridulS changed the title MAINT: run ci builds on windows too MAINT: run ci builds on windows and macos Jun 24, 2024
@nvaytet nvaytet self-assigned this Jun 26, 2024
Comment on lines 15 to 16
- version: '${{needs.formatting.outputs.min_python}}'
tox-env: '${{needs.formatting.outputs.min_tox_env}}'
Copy link
Member

Choose a reason for hiding this comment

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

This won't work because there is no needs. We probably need an additional job or step to get the python version like we do in the ci.yml workflow:

      - name: Get Python version for other CI jobs
        id: vars
        run: |
          echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
          echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT

uses: ./.github/workflows/docs.yml
with:
publish: false
linkcheck: ${{ contains(matrix.variant.os, 'ubuntu') && github.ref == 'refs/heads/main' }}
Copy link
Member

Choose a reason for hiding this comment

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

I would say we don't need to run linkcheck on these builds? Would just add more noise (failed runs even if all tests have passed).

@nvaytet
Copy link
Member

nvaytet commented Jun 27, 2024

Is it possible to try and run this manually from the branch, just to check that it actually runs?

@YooSunYoung
Copy link
Member

Is it possible to try and run this manually from the branch, just to check that it actually runs?

Yes it has workflow_dispatch:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In progress
Development

Successfully merging this pull request may close these issues.

None yet

5 participants