Skip to content

Fix CI and consolidate jobs into fewer workflows #231

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

Merged
merged 10 commits into from
Apr 25, 2025
Merged

Fix CI and consolidate jobs into fewer workflows #231

merged 10 commits into from
Apr 25, 2025

Conversation

EliahKagan
Copy link
Owner

See individual commit messages for details.

And enable `fail-fast: false` in more places, perhaps temporarily,
to figure out all of which versions/platforms are failing, why they
are failing, and which of them will make sense to try to fix.

I'm doing this now with the goal of allowing CI to pass on
Dependabot PRs, especially security update PRs like #230, while
being able to be pretty confident that they don't break anything.
- Remove unnecessary pull request limit, since grouping the updates
  is sufficient to prevent an excessive number of PRs.

- Group GHA updates as well (not just Python ones). This is mostly
  to avoid unnecessary inconsistency, but also sometimes multiple
  related actions get upates at the same time, such that CI jobs
  may not pass if only one is updated.
This removes the CodeQL workflow, because I am going to try
enabling the "default" setup. The default setup works pretty well
these days, avoids having to update actions or make changes to
account for drift in recommended configuration or to remove steps
that become unnecessary over time (such as installing dependencies,
for some languages), and makes it easy to expand scanning to also
cover GitHub Actions workflows (which is now fully supported).
This moves all GitHub Actions workflows that have the same event
triggers and are not likely ever to be wanted to have different
event triggers into a single workflow file. This is most of them.
- Exclude the 3.7 job on macOS, since `macos-latest` is AArch64
  which doesn't have builds for 3.7.

- Comment out 3.13t, since it doesn't seem to be working at all
  right now for this, on any platforms. That can be investigated
  later.
It was using the 32-bit x86 Python instead of the 64-bit x86-64
Python on Windows in the `pytest-pipenv` job, which was never
intended and also caused failures in 3.10, 3.11, 3.12, and 3.13
(during an attempt to build a dependency).
`pipenv` is picking the 32-bit Python when it should prefer the
architecture-matching 64-bit Python. I don't know why this happens.
It looks like it might be a bug in `pipenv` but I am not sure.

This isn't worth fixing unless development is to be resumed and
alternatives to `pipenv` (such as `uv`) turn out to be unsuitable.
Instead, this commit drops the Windows jobs in `pytest-pipenv`. All
the other Windows jobs are kept: the locked `pipenv` test job for
Windows in `pytest-pipenv-lock`, as well as the seven Windows
`conda` jobs in `pytest-conda`.
Rather than `ubuntu-latest`, which is currently Ubuntu 24.04 LTS.

(Neither the `ubuntu-24.04` image nor the `python-versions`
download source have builds of Python 3.7 that run on Ubuntu, due
to Python 3.7 being end-of-life for a while now.)
@EliahKagan EliahKagan changed the title Fix CI Fix CI and consolidate jobs into fewer workflows Apr 25, 2025
@EliahKagan EliahKagan merged commit 03c9eb0 into main Apr 25, 2025
78 checks passed
@EliahKagan EliahKagan deleted the ci branch April 25, 2025 00:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant