Skip to content

Start using Cirrus CI #24597

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

Closed
wants to merge 1 commit into from
Closed

Start using Cirrus CI #24597

wants to merge 1 commit into from

Conversation

oscargus
Copy link
Member

@oscargus oscargus commented Dec 3, 2022

PR Summary

I expect quite a few attempts...

PR Checklist

Documentation and Tests

  • Has pytest style unit tests (and pytest passes)
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • New plotting related features are documented with examples.

Release Notes

  • New features are marked with a .. versionadded:: directive in the docstring and documented in doc/users/next_whats_new/
  • API changes are marked with a .. versionchanged:: directive in the docstring and documented in doc/api/next_api_changes/
  • Release notes conform with instructions in next_whats_new/README.rst or next_api_changes/README.rst

@oscargus oscargus marked this pull request as draft December 3, 2022 14:27
@oscargus oscargus force-pushed the cirrusci branch 25 times, most recently from 5686fcf to 1ca320e Compare December 3, 2022 17:33
@oscargus
Copy link
Member Author

oscargus commented Dec 3, 2022

Giving up for now.

For FreeBSD, I get the following error when running pip or python

ld-elf.so.1: /lib/libc.so.7: version FBSD_1.7 required by /usr/local/lib/libpython3.7m.so.1.0 not found

so something is wrong with the install.

For MacOS and Linux ARM64, the following happens

Successfully installed matplotlib-0.1.0.dev45061+g1ca320e
...
ERROR  - ImportError: cannot import name '_c_internal_utils' from partially initialized module 'matplotlib' (most likely due to a circular import) (/tmp/cirrus-ci-build/lib/matplotlib/__init__.py)

Not sure if they are related, but it would be nicer if the version numbering worked properly to start with...

@QuLogic
Copy link
Member

QuLogic commented Dec 15, 2022

I see stuff like:

    Not uninstalling setuptools at /usr/lib/python3/dist-packages, outside environment /usr
    Can't uninstall 'setuptools'. No files were found to uninstall.

and

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

These are Debian system paths. Perhaps it would be best to follow that advice and create a venv.

@QuLogic
Copy link
Member

QuLogic commented Sep 14, 2023

Successfully installed matplotlib-0.1.0.dev48306+g388057b

This is because their checkout does a shallow clone without tags.

@QuLogic
Copy link
Member

QuLogic commented Sep 19, 2023

Btw, do we know if previous tests will be cancelled when pushing a new version?

Yes, it seems so on any branch other than main: https://cirrus-ci.org/guide/writing-tasks/#auto-cancellation-of-tasks

@ksunden
Copy link
Member

ksunden commented Sep 19, 2023

May be worth modifying it so that it does cancel even on main (or perhaps even to not run again on every commit to main)

@oscargus
Copy link
Member Author

I tried to see if one somehow can trigger the runs based on setting a specific label, but to no avail.

An option is to use manual https://cirrus-ci.org/guide/writing-tasks/#manual-tasks and then do a bit of a guessing game if the PR may affect anything... (Not sure exactly who can trigger it though.)

@QuLogic
Copy link
Member

QuLogic commented Sep 30, 2023

Successfully installed matplotlib-0.1.0.dev48306+g388057b

This is because their checkout does a shallow clone without tags.

This is fixed now by adding the git fetch --tags.

I tried to see if one somehow can trigger the runs based on setting a specific label, but to no avail.

I'm not sure we should try to optimize too much before finding out if we're going to end up close to the limit.

@ksunden
Copy link
Member

ksunden commented Oct 2, 2023

@QuLogic
Copy link
Member

QuLogic commented Oct 3, 2023

It looks like those are xlarge runners, which are only available for GitHub Team or GitHub Enterprise Cloud plans. So we'd still need to wait some more.

@QuLogic QuLogic force-pushed the cirrusci branch 3 times, most recently from 570d3c5 to c6d61ec Compare October 11, 2023 07:31
@QuLogic
Copy link
Member

QuLogic commented Oct 11, 2023

Comparing the previous build on aarch64, it took >2min to build, and now takes 34s, a factor of about 4, which matches CPU count. So the Meson build does seem to be taking advantage of all CPUs as expected. On macOS, it was 43s and now 15s, which is only 3x, but that might be too fast already.

Oddly, there are new image failures on aarch64. I'm not sure why that's happening as that test image doesn't seem to have changed. Perhaps it's about optimizations or similar.

@QuLogic
Copy link
Member

QuLogic commented Jan 31, 2024

It appears we have waited long enough, at least for M1 macOS: #27723

Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
@dstansby
Copy link
Member

Is it worth closing this now we can get native M1 runners on GH actions? #27723

@oscargus
Copy link
Member Author

Unless we think that aarch64-Linux is worthwhile, I'd be happy to close this.

@dstansby
Copy link
Member

aarch64-linux runners are available on GH actions now now: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/, so I think this has become redundant?

@QuLogic
Copy link
Member

QuLogic commented Mar 20, 2025

Yes, I think unfortunately or fortunately, this PR is no longer needed.

@QuLogic QuLogic closed this Mar 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: testing CI configuration and testing status: needs rebase
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants