Skip to content

Single-source CI jobs & use alls-green to check status#646

Merged
ccordoba12 merged 8 commits intomainfrom
make-workflow-reusable
Jan 19, 2026
Merged

Single-source CI jobs & use alls-green to check status#646
ccordoba12 merged 8 commits intomainfrom
make-workflow-reusable

Conversation

@CAM-Gerlach
Copy link
Member

@CAM-Gerlach CAM-Gerlach commented Jan 15, 2026

Note: This PR is from an upstream branch since newly-added GH Actions workflows won't kick off from a fork branch; see PR #645 for the previous failed attempt.

We currently have three GH Actions workflow files to run the test, one per platform, each with largely duplicative content which is not very DRY. Additionally, the number of matrix jobs make it a pain to keep on top of setting the correct jobs as required given the serious limitations of GitHub's interface in that regard.

Therefore, this PR single-sources the various jobs to all run via a single workflow without duplication, and uses the alls-green action to check their required status, like we do for CPython, so that only that job need be required and it will ensure the matrix jobs are required automatically.

It also refactors the workflow to fix some other minor issues and cruft:

  • Set the Windows and Mac upper bound version to the actual supported upper bound (3.13, not 3.12)
  • Switch the Coveralls action to run on a supported Python version so it actually works (it previously was set to run on 3.8 and never updated when that was removed from the matrix
  • Remove an old Python 3.8 matrix exclude that is no longer relevant for the same reason
  • Use the job matrix to centrally manage config for the coveralls job and the pyqt6 install command instead of scattered around different steps
  • Add conda-remove-defaults: true to address an outstanding warning
  • Update the checkout action from v3 to the latest v6
  • Set the default run invocation to bash -el {0} instead of duplicating it every step
  • Other minor cleanup

@CAM-Gerlach CAM-Gerlach added this to the 5.8.0 milestone Jan 15, 2026
@CAM-Gerlach CAM-Gerlach self-assigned this Jan 15, 2026
@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch 2 times, most recently from e79104f to 8830c20 Compare January 15, 2026 23:43
@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch 5 times, most recently from 89ef54f to ec7b529 Compare January 16, 2026 01:03
@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch from ec7b529 to b70c2df Compare January 16, 2026 01:09
@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch from 697888f to ef3720e Compare January 16, 2026 01:25
@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch 2 times, most recently from 853f281 to c6060af Compare January 16, 2026 01:59
@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch from c6060af to 498f9ba Compare January 16, 2026 02:11
@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch from 783280c to ca536f9 Compare January 16, 2026 02:56
@CAM-Gerlach
Copy link
Member Author

There appears to be a bit of a Heisenbug with the tests on Ubuntu - Python 3.12 - PyQt5, Pip or Conda, as when I tried to set the coverage job to run on the latest 3.13 instead of 3.12 (when it wasn't running initially at all), these jobs started core dumping consistently every run.

The only differences between the runs with and without is adding coveralls and pytest-cov to the dependencies to install (Pip only, doesn't affect the Conda job), passing --cov=qtconsole to Pytest and whether the Coveralls job is run after the Pytest one (and wasn't running at all before). The first only happens on the Pip job, the last happens after the tests run and the core dump happens, so evidently whether --cov is passed causes Pytest to core dump.

For now I have the coverage run on 3.12, though an alternate solution would be installing the coverage deps and running coverage unconditionally (and only uploading it for certain jobs--perhaps only one job was intended originally?)

@CAM-Gerlach
Copy link
Member Author

CAM-Gerlach commented Jan 16, 2026

@ccordoba12 I recommend merging it as "Merge" rather than "Squash", since I've structured things into atomic commits and it makes it much easier to see what has actually been changed and added versus the previous CI workflows rather than one big commit deleting the old and adding a brand new one.

Copy link
Member

@ccordoba12 ccordoba12 left a comment

Choose a reason for hiding this comment

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

Thanks @CAM-Gerlach for your work on this!

@CAM-Gerlach CAM-Gerlach force-pushed the make-workflow-reusable branch from 774ab3f to 07f0019 Compare January 19, 2026 00:46
Copy link
Member

@ccordoba12 ccordoba12 left a comment

Choose a reason for hiding this comment

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

Great work, thanks @CAM-Gerlach!

@ccordoba12 ccordoba12 merged commit 8b65e08 into main Jan 19, 2026
22 of 24 checks passed
@ccordoba12 ccordoba12 deleted the make-workflow-reusable branch January 19, 2026 01:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants