Closes #739: Skip slow and external network tests in PR CI - #740
Merged
Conversation
This reduces the feedback loop duration for pull requests by skipping the slower and external_network tests from the pr.yaml workflow.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR reduces pull-request CI runtime by skipping tests marked as slow and external_network only in the PR workflow, while keeping full coverage in other workflows (e.g., scheduled or branch workflows).
Changes:
- Adds
SKIP_SLOW_TESTS=trueto the PR GitHub Actions workflow environment. - Forwards
SKIP_SLOW_TESTSinto the test Docker containers. - Updates the test runner to extend the pytest marker expression to exclude
slowandexternal_networkwhen the flag is enabled.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
test/run_test.sh |
Conditionally modifies the pytest -m marker filter to exclude slow and external_network when SKIP_SLOW_TESTS is enabled. |
test/run_test_container.sh |
Passes SKIP_SLOW_TESTS through to the Docker containers running the tests. |
.github/workflows/pr.yaml |
Sets SKIP_SLOW_TESTS: true for PR CI runs to speed up feedback loops. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
luisremis
requested changes
May 23, 2026
luisremis
left a comment
Contributor
There was a problem hiding this comment.
you need to add the nightly workflow, which runs all the tests, as part of this pr.
Contributor
Author
|
Added |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #739
This PR addresses the slow CI execution times in the PR workflow by implementing Option 3 from the issue: Separating 'Slow' / 'External' Tests from PR workflows.
Why Option 3 over the others?
pytest-splitorpytest-xdistwould reduce wall-clock time, but it introduces the complexity of aggregating coverage across jobs. It also runs the risk of race conditions if concurrent test processes mutate the same ApertureDB database state.DOCKER_BUILDKIT: 1and layer caching via GitHub Container Registry (seepr.yaml). While we could attempt to cache Pip more granularly, the actual Pytest execution phase remains the largest bottleneck.SKIP_SLOW_TESTS=true) exclusively in the PR workflow, we gain immediate and significant reduction in CI completion times. The tests marked with@pytest.mark.slowor@pytest.mark.external_networkwill be skipped in PR feedback loops, but will continue running in the dailydependencies.ymlruns anddevelop.yml/main.ymlworkflows to ensure no coverage is lost globally.Implementation details
pr.yamlto passSKIP_SLOW_TESTS=truerun_test_container.shto forward this environment variable directly to thedocker runcommands executing testsrun_test.shto injectand not slow and not external_networkinto the pytest$FILTERquery when the flag is true