Skip to content

Refactor pytest GitHub Actions workflow#448

Merged
BrianJKoopman merged 8 commits intomainfrom
koopman/ci-updates
Mar 20, 2026
Merged

Refactor pytest GitHub Actions workflow#448
BrianJKoopman merged 8 commits intomainfrom
koopman/ci-updates

Conversation

@BrianJKoopman
Copy link
Copy Markdown
Member

@BrianJKoopman BrianJKoopman commented Mar 6, 2026

Description

This PR refactors the pytest workflow in order to run the unit tests on all supported Python versions (3.7-3.12). It also now runs the integration tests in parallel with the unit tests, and uploads the merged coverage report in a separate job.

I debated whether to run the integration tests after the unit tests pass, or in parallel, and figured parallel at least finishes the CI run slightly faster, even if we end up running the integration tests times that unit tests fail early. Thoughts on this welcome.

EDIT: We'll probably need to change the configured expected checks. I'll handle that once things settle. This also means I need to update the skipped-pytest.yml workflow , but haven't yet.

Motivation and Context

I've been thinking about doing this for a while. It'd be especially useful to check things work across versions if we ever end up implementing #405.

Uploading the coverage report in a separate job allows the upload job to fail and be retried without needing to re-run the tests again.

How Has This Been Tested?

I tested the workflow with an on: push before submitting this PR.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

@BrianJKoopman BrianJKoopman merged commit 781eed5 into main Mar 20, 2026
11 checks passed
@BrianJKoopman BrianJKoopman deleted the koopman/ci-updates branch March 20, 2026 13:33
BrianJKoopman added a commit to simonsobs/socs that referenced this pull request Apr 7, 2026
These changes were all based on those made in [1].

[1] - simonsobs/ocs#448
BrianJKoopman added a commit to simonsobs/socs that referenced this pull request Apr 7, 2026
These changes were all based on those made in [1].

[1] - simonsobs/ocs#448
BrianJKoopman added a commit to simonsobs/socs that referenced this pull request Apr 7, 2026
These changes were all based on those made in [1].

[1] - simonsobs/ocs#448
BrianJKoopman added a commit to simonsobs/socs that referenced this pull request Apr 7, 2026
* Replace cancel-workflow-action with concurrency

* Refactor pytest Actions workflow

These changes were all based on those made in [1].

[1] - simonsobs/ocs#448

* Drop testing for 3.12

This is broken for the way we install in the workflow, but should still work if
sotodlib is pip installed separately.

* Drop support for Python 3.7

* Set appropriate timeouts

* Group integ tests to run in parallel jobs

* Updated skipped-pytest workflow
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