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

CI: GitHub Actions CI job restructuring #24493

Merged
merged 4 commits into from
Aug 22, 2023
Merged

CI: GitHub Actions CI job restructuring #24493

merged 4 commits into from
Aug 22, 2023

Conversation

rgommers
Copy link
Member

Implements most of what is discussed in gh-24410, and documents what each job does. It removes some duplicate jobs, and adds a few notes and TODOs for where we miss coverage.

For the two files with a large number of jobs (linux.yml and linux_simd.yml) we run the same smoke_test which acts as a gate for the other jobs. That's an unavoidable duplication, but it takes only ~6 minutes so that should be fine. If there are only 2-3 jobs in a yml file, we don't run a smoke test. Overall, this will cut down on the number of jobs and make them easier to maintain.

Also documents better what is being run. See numpygh-24410 for the
overall restructuring plan for GitHub Actions CI.
[skip azp] [skip cirrus] [skip circle] [skip travis]
@rgommers
Copy link
Member Author

This is happy now. Should make it easier to iterate on things in parallel after this is merged. We basically have to get rid of uses: ./.github/actions from all these jobs, which is the part that's hitting the setup.py builds.

- uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0
with:
python-version: '3.11'

Copy link
Member

Choose a reason for hiding this comment

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

Could get rid of the blank line at some point.

@charris charris merged commit cf3b7e0 into numpy:main Aug 22, 2023
41 checks passed
@charris
Copy link
Member

charris commented Aug 22, 2023

Thanks Ralf.

@rgommers rgommers deleted the ci-meson branch August 22, 2023 16:33
@mattip
Copy link
Member

mattip commented Aug 24, 2023

Here are the current workflows on github actions and the time they take to run (after merging this PR)

Workflow time Runs on merge to main
BLAS tests (Linux) 9-14 min no
CircleCI artifact redirector 10 sec no
CodeQL 5-7 min yes
Dependency Review < 20s no
Linux Qemu tests 20-25 min no
Linux tests 19-30 min yes
Pull Request Labeler <20s no
Run MyPy 6-14 min no
Scorecards supply-chain security 1 min runs only on merges
SIMD tests (Linux) 23-26 min no
Test Address Sanitizer Build (Linux) 19 min see PR #24208
Test Emscripten/Pyodide build 10-15 min no
Test muslinux ×86 64 9-10 min no
Test on Cygwin 34-50 min no
Test with compiler sanitizers (Linux) 21-32 min no
Wheel builder 20 min mostly skipped, runs on a schedule
Windows tests 14-17 min no

In addition we have the

@rgommers
Copy link
Member Author

Thanks! That's a useful overview. Perhaps good to post it on gh-24410 too (more discoverable)?

I think we should first get rid of all the setup.py files, and then see where we're at before doing anything else. We can restructure jobs, triggers, etc. after that.

charris pushed a commit to charris/numpy that referenced this pull request Nov 5, 2023
This is a backport of numpy#24493 and numpy#24291. The purpose of
this is to ease future backports that expect these files.

- CI: move some jobs in `build_test.yml` to Meson

- CI: split `build_test.yml` into three GHA jobs files

  Also documents better what is being run. See numpygh-24410 for the
  overall restructuring plan for GitHub Actions CI.

- CI: merge `linux_meson.yml` into `linux_blas.yml`

- TST: disable mypy tests in test suite unless an environment variable is set

  These tests are super slow, and they're effectively always passing in CI.
  Running them on all "full" test suite runs is too expensive. Note that
  SciPy has an XSLOW mark, NumPy does not. So use an env var for now.

- CI: add new GHA CI jobs to run MyPy across OS/Python flavors
charris pushed a commit to charris/numpy that referenced this pull request Nov 11, 2023
This is a backport of numpy#24493 and numpy#24291. The purpose of
this is to ease future backports that expect these files.

- CI: move some jobs in `build_test.yml` to Meson

- CI: split `build_test.yml` into three GHA jobs files

  Also documents better what is being run. See numpygh-24410 for the
  overall restructuring plan for GitHub Actions CI.

- CI: merge `linux_meson.yml` into `linux_blas.yml`

- TST: disable mypy tests in test suite unless an environment variable is set

  These tests are super slow, and they're effectively always passing in CI.
  Running them on all "full" test suite runs is too expensive. Note that
  SciPy has an XSLOW mark, NumPy does not. So use an env var for now.

- CI: add new GHA CI jobs to run MyPy across OS/Python flavors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants