-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Refactor CI #46493
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
Refactor CI #46493
Conversation
Looks like only 1 check ran |
- Drop Azure (move to GHA). - Use mamba-org/provision-with-micromamba to set up Conda envs. - Cache Conda envs. - Use hendrikmuhs/ccache-action to cache C compiliation. - Add Windows 32 bit build. - Drop Ubuntu 32 bit build. - Factor out common GHA code into reusable actions.
GHA has serious problems right now |
Can we hold off on removing Azure pipelines for now? Right now, jobs queue for very long times >2 hours(sometimes up to 4 hours) when lots of PRs are merged. I'm trying to clear out some redundant builds right now, but that will probably take me a while before I get the builds down to a reasonable number(~20 jobs per build). |
build: | ||
if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}} | ||
sdist: | ||
#if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}} |
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 was this commented? sdists are not supposed to run on every PR as per #43745
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.
Thanks, that's a debugging leftover
using: composite | ||
steps: | ||
# TODO: GH#44980 https://github.com/pypa/setuptools/issues/2941 | ||
- name: Create temporary requirements.txt |
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.
Any reason for this? I think we can pin setuptools in the main file.
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.
This is required to use setup-python
's caching.
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.
Thanks for the PR! Generally like the changes in this PR, however the diff still feels a bit too large and clunky to review. I left a few initial comments, but will have try to get a deeper review in later.
I would recommend splitting the Azure changes out pending discussion, and to only migrate a couple of the workflows at a time to keep the diffs smaller.
@@ -0,0 +1,62 @@ | |||
name: macOS and Windows |
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.
It might be better to pair together macOS and Ubuntu together in the future when we do drop azure.
Agreed that this PR seems to tackle too much still for a thorough review, especially for CI changes where we need to be careful about things passing. Generally it's easier if 1 PR tackles 1 general issue/theme |
Is there any way to change to a large GHA plan? Maybe through some GH open source sponsoring program or some Pandas sponsor? Re even more splitting, would it be a viable option to ship most of the shared code in |
Also maybe we can bail out earlier if there are test failures. I thought that maybe w e could come up with a very small test of "pre tests" that we can run in eg. 60 s and that would exit the test run if failed. |
We could probably reach out to Github to see what's possible. Probably good to bring up at the next developer meeting. FWIW I don't think the long queue times are a huge deal. Minus the redundancy of testing which wastes compute resources, development is fairly asynchronous over longer time spans (especially reviewer availability) without major deadlines so the waiting is not major IMO.
Some of the changes I see that could be a single PR
|
Are you suggesting that I should join the meeting (where can I find info?) or are you going to bring it up?
I think they are because they create a very long feedback loop for contributors. It's fine if tests take a long time but I think it's worth investing some effort into reducing the latency between a push and the first test being executed.
Working on a new PR! |
@jonashaag the CI is very large on pandas and we are already using a large plan. it is unlikey we are going to be able to change anything here. The cycle times are what they are. |
Going along a similar vein, maybe we can try making the slow CI depend on non slow CI and see if that helps(we can cache the built pandas from the non-slow CI, and install from that for the slow CI). |
What's really curious is that the GHA machines are SO incredibly slow. On my M1 machine with no pytest-xdist the full test suite takes 8 minutes, while on GHA with 2 cores it takes ~ 45 minutes. |
This PR 1 from this list #46346 (comment)
cc @mroeschke
doc/source/whatsnew/vX.X.X.rst
file if fixing a bug or adding a new feature.