Skip to content

Commit 9282c74

Browse files
Merge pull request #890 from dhellmann/consolidate-e2e-jobs
feat(ci): consolidate e2e tests
2 parents af19f7b + eefcd49 commit 9282c74

13 files changed

Lines changed: 346 additions & 149 deletions

.github/workflows/test.yaml

Lines changed: 7 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -75,41 +75,12 @@ jobs:
7575
# RHEL 9.4 has rustc 1.75
7676
- "1.75"
7777
test-script:
78-
- bootstrap
79-
- bootstrap_extras
80-
- bootstrap_build_tags
81-
- bootstrap_prerelease
82-
- bootstrap_conflicting_requirements
83-
- bootstrap_constraints
84-
- bootstrap_cache
85-
- bootstrap_sdist_only
86-
- bootstrap_git_url
87-
- bootstrap_git_url_tag
88-
- bootstrap_parallel
89-
- bootstrap_parallel_git_url
90-
- bootstrap_parallel_git_url_tag
91-
- bootstrap_skip_constraints
92-
- build
93-
- build_order
94-
- build_parallel
95-
- build_sequence_git_url
96-
- build_steps
97-
- build_settings
98-
- graph_to_constraints
99-
- meson
100-
- migrate_graph
101-
- override
102-
- pep517_build_sdist
103-
- post_bootstrap_hook
104-
- prebuilt_wheels_alt_server
105-
- report_missing_dependency
106-
- rust_vendor
107-
- download_sequence
108-
- optimize_build
109-
- extra_metadata
110-
- elfdeps
111-
- prebuilt_wheel_hook
112-
- lint_requirements
78+
- ci_bootstrap_suite
79+
- ci_bootstrap_parallel_suite
80+
- ci_build_suite
81+
- ci_config_suite
82+
- ci_specialized_suite
83+
- ci_workflow_suite
11384
os:
11485
- ubuntu-latest
11586
- macos-latest
@@ -147,7 +118,7 @@ jobs:
147118
run: python -m pip install hatch 'click!=8.3.0'
148119

149120
- name: Run tests
150-
run: ./e2e/test_${{ matrix.test-script }}.sh
121+
run: HATCH_PYTHON=${{ matrix.python-version }} ./e2e/${{ matrix.test-script }}.sh
151122

152123
- name: Upload logs for debugging
153124
if: ${{ failure() }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ __pycache__/
2121
/package.json
2222
/e2e-output/
2323
/dist/
24+
/e2e/flit_core_override/build
2425
/e2e/fromager_hooks/build
2526
/e2e/fromager_hooks/dist
2627
/e2e/pyo3_test/.cargo

.mergify.yml

Lines changed: 19 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -37,111 +37,25 @@ pull_request_rules:
3737
# MyPy type checking
3838
- check-success=mypy
3939

40-
- check-success=e2e (3.11, 1.75, bootstrap, ubuntu-latest)
41-
- check-success=e2e (3.11, 1.75, bootstrap_build_tags, ubuntu-latest)
42-
- check-success=e2e (3.11, 1.75, bootstrap_cache, ubuntu-latest)
43-
- check-success=e2e (3.11, 1.75, bootstrap_conflicting_requirements, ubuntu-latest)
44-
- check-success=e2e (3.11, 1.75, bootstrap_constraints, ubuntu-latest)
45-
- check-success=e2e (3.11, 1.75, bootstrap_extras, ubuntu-latest)
46-
- check-success=e2e (3.11, 1.75, bootstrap_git_url, ubuntu-latest)
47-
- check-success=e2e (3.11, 1.75, bootstrap_git_url_tag, ubuntu-latest)
48-
- check-success=e2e (3.11, 1.75, bootstrap_parallel, ubuntu-latest)
49-
- check-success=e2e (3.11, 1.75, bootstrap_parallel_git_url, ubuntu-latest)
50-
- check-success=e2e (3.11, 1.75, bootstrap_parallel_git_url_tag, ubuntu-latest)
51-
- check-success=e2e (3.11, 1.75, bootstrap_prerelease, ubuntu-latest)
52-
- check-success=e2e (3.11, 1.75, bootstrap_sdist_only, ubuntu-latest)
53-
- check-success=e2e (3.11, 1.75, bootstrap_skip_constraints, ubuntu-latest)
54-
- check-success=e2e (3.11, 1.75, build, ubuntu-latest)
55-
- check-success=e2e (3.11, 1.75, build_order, ubuntu-latest)
56-
- check-success=e2e (3.11, 1.75, build_parallel, ubuntu-latest)
57-
- check-success=e2e (3.11, 1.75, build_sequence_git_url, ubuntu-latest)
58-
- check-success=e2e (3.11, 1.75, build_settings, ubuntu-latest)
59-
- check-success=e2e (3.11, 1.75, build_steps, ubuntu-latest)
60-
- check-success=e2e (3.11, 1.75, download_sequence, ubuntu-latest)
61-
- check-success=e2e (3.11, 1.75, elfdeps, ubuntu-latest)
62-
- check-success=e2e (3.11, 1.75, extra_metadata, ubuntu-latest)
63-
- check-success=e2e (3.11, 1.75, graph_to_constraints, ubuntu-latest)
64-
- check-success=e2e (3.11, 1.75, lint_requirements, ubuntu-latest)
65-
- check-success=e2e (3.11, 1.75, meson, ubuntu-latest)
66-
- check-success=e2e (3.11, 1.75, migrate_graph, ubuntu-latest)
67-
- check-success=e2e (3.11, 1.75, optimize_build, ubuntu-latest)
68-
- check-success=e2e (3.11, 1.75, override, ubuntu-latest)
69-
- check-success=e2e (3.11, 1.75, pep517_build_sdist, ubuntu-latest)
70-
- check-success=e2e (3.11, 1.75, post_bootstrap_hook, ubuntu-latest)
71-
- check-success=e2e (3.11, 1.75, prebuilt_wheel_hook, ubuntu-latest)
72-
- check-success=e2e (3.11, 1.75, prebuilt_wheels_alt_server, ubuntu-latest)
73-
- check-success=e2e (3.11, 1.75, report_missing_dependency, ubuntu-latest)
74-
- check-success=e2e (3.11, 1.75, rust_vendor, ubuntu-latest)
75-
- check-success=e2e (3.12, 1.75, bootstrap, macos-latest)
76-
- check-success=e2e (3.12, 1.75, bootstrap, ubuntu-latest)
77-
- check-success=e2e (3.12, 1.75, bootstrap_build_tags, macos-latest)
78-
- check-success=e2e (3.12, 1.75, bootstrap_build_tags, ubuntu-latest)
79-
- check-success=e2e (3.12, 1.75, bootstrap_cache, macos-latest)
80-
- check-success=e2e (3.12, 1.75, bootstrap_cache, ubuntu-latest)
81-
- check-success=e2e (3.12, 1.75, bootstrap_conflicting_requirements, macos-latest)
82-
- check-success=e2e (3.12, 1.75, bootstrap_conflicting_requirements, ubuntu-latest)
83-
- check-success=e2e (3.12, 1.75, bootstrap_constraints, macos-latest)
84-
- check-success=e2e (3.12, 1.75, bootstrap_constraints, ubuntu-latest)
85-
- check-success=e2e (3.12, 1.75, bootstrap_extras, macos-latest)
86-
- check-success=e2e (3.12, 1.75, bootstrap_extras, ubuntu-latest)
87-
- check-success=e2e (3.12, 1.75, bootstrap_git_url, macos-latest)
88-
- check-success=e2e (3.12, 1.75, bootstrap_git_url, ubuntu-latest)
89-
- check-success=e2e (3.12, 1.75, bootstrap_git_url_tag, macos-latest)
90-
- check-success=e2e (3.12, 1.75, bootstrap_git_url_tag, ubuntu-latest)
91-
- check-success=e2e (3.12, 1.75, bootstrap_parallel, macos-latest)
92-
- check-success=e2e (3.12, 1.75, bootstrap_parallel, ubuntu-latest)
93-
- check-success=e2e (3.12, 1.75, bootstrap_parallel_git_url, macos-latest)
94-
- check-success=e2e (3.12, 1.75, bootstrap_parallel_git_url, ubuntu-latest)
95-
- check-success=e2e (3.12, 1.75, bootstrap_parallel_git_url_tag, macos-latest)
96-
- check-success=e2e (3.12, 1.75, bootstrap_parallel_git_url_tag, ubuntu-latest)
97-
- check-success=e2e (3.12, 1.75, bootstrap_prerelease, macos-latest)
98-
- check-success=e2e (3.12, 1.75, bootstrap_prerelease, ubuntu-latest)
99-
- check-success=e2e (3.12, 1.75, bootstrap_sdist_only, macos-latest)
100-
- check-success=e2e (3.12, 1.75, bootstrap_sdist_only, ubuntu-latest)
101-
- check-success=e2e (3.12, 1.75, bootstrap_skip_constraints, macos-latest)
102-
- check-success=e2e (3.12, 1.75, bootstrap_skip_constraints, ubuntu-latest)
103-
- check-success=e2e (3.12, 1.75, build, macos-latest)
104-
- check-success=e2e (3.12, 1.75, build, ubuntu-latest)
105-
- check-success=e2e (3.12, 1.75, build_order, macos-latest)
106-
- check-success=e2e (3.12, 1.75, build_order, ubuntu-latest)
107-
- check-success=e2e (3.12, 1.75, build_parallel, macos-latest)
108-
- check-success=e2e (3.12, 1.75, build_parallel, ubuntu-latest)
109-
- check-success=e2e (3.12, 1.75, build_sequence_git_url, macos-latest)
110-
- check-success=e2e (3.12, 1.75, build_sequence_git_url, ubuntu-latest)
111-
- check-success=e2e (3.12, 1.75, build_settings, macos-latest)
112-
- check-success=e2e (3.12, 1.75, build_settings, ubuntu-latest)
113-
- check-success=e2e (3.12, 1.75, build_steps, macos-latest)
114-
- check-success=e2e (3.12, 1.75, build_steps, ubuntu-latest)
115-
- check-success=e2e (3.12, 1.75, download_sequence, macos-latest)
116-
- check-success=e2e (3.12, 1.75, download_sequence, ubuntu-latest)
117-
- check-success=e2e (3.12, 1.75, elfdeps, macos-latest)
118-
- check-success=e2e (3.12, 1.75, elfdeps, ubuntu-latest)
119-
- check-success=e2e (3.12, 1.75, extra_metadata, macos-latest)
120-
- check-success=e2e (3.12, 1.75, extra_metadata, ubuntu-latest)
121-
- check-success=e2e (3.12, 1.75, graph_to_constraints, macos-latest)
122-
- check-success=e2e (3.12, 1.75, graph_to_constraints, ubuntu-latest)
123-
- check-success=e2e (3.12, 1.75, lint_requirements, macos-latest)
124-
- check-success=e2e (3.12, 1.75, lint_requirements, ubuntu-latest)
125-
- check-success=e2e (3.12, 1.75, meson, macos-latest)
126-
- check-success=e2e (3.12, 1.75, meson, ubuntu-latest)
127-
- check-success=e2e (3.12, 1.75, migrate_graph, macos-latest)
128-
- check-success=e2e (3.12, 1.75, migrate_graph, ubuntu-latest)
129-
- check-success=e2e (3.12, 1.75, optimize_build, macos-latest)
130-
- check-success=e2e (3.12, 1.75, optimize_build, ubuntu-latest)
131-
- check-success=e2e (3.12, 1.75, override, macos-latest)
132-
- check-success=e2e (3.12, 1.75, override, ubuntu-latest)
133-
- check-success=e2e (3.12, 1.75, pep517_build_sdist, macos-latest)
134-
- check-success=e2e (3.12, 1.75, pep517_build_sdist, ubuntu-latest)
135-
- check-success=e2e (3.12, 1.75, post_bootstrap_hook, macos-latest)
136-
- check-success=e2e (3.12, 1.75, post_bootstrap_hook, ubuntu-latest)
137-
- check-success=e2e (3.12, 1.75, prebuilt_wheel_hook, macos-latest)
138-
- check-success=e2e (3.12, 1.75, prebuilt_wheel_hook, ubuntu-latest)
139-
- check-success=e2e (3.12, 1.75, prebuilt_wheels_alt_server, macos-latest)
140-
- check-success=e2e (3.12, 1.75, prebuilt_wheels_alt_server, ubuntu-latest)
141-
- check-success=e2e (3.12, 1.75, report_missing_dependency, macos-latest)
142-
- check-success=e2e (3.12, 1.75, report_missing_dependency, ubuntu-latest)
143-
- check-success=e2e (3.12, 1.75, rust_vendor, macos-latest)
144-
- check-success=e2e (3.12, 1.75, rust_vendor, ubuntu-latest)
40+
# E2E test suites (consolidated from individual tests)
41+
- check-success=e2e (3.11, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
42+
- check-success=e2e (3.11, 1.75, ci_bootstrap_suite, ubuntu-latest)
43+
- check-success=e2e (3.11, 1.75, ci_build_suite, ubuntu-latest)
44+
- check-success=e2e (3.11, 1.75, ci_config_suite, ubuntu-latest)
45+
- check-success=e2e (3.11, 1.75, ci_specialized_suite, ubuntu-latest)
46+
- check-success=e2e (3.11, 1.75, ci_workflow_suite, ubuntu-latest)
47+
- check-success=e2e (3.12, 1.75, ci_bootstrap_parallel_suite, macos-latest)
48+
- check-success=e2e (3.12, 1.75, ci_bootstrap_parallel_suite, ubuntu-latest)
49+
- check-success=e2e (3.12, 1.75, ci_bootstrap_suite, macos-latest)
50+
- check-success=e2e (3.12, 1.75, ci_bootstrap_suite, ubuntu-latest)
51+
- check-success=e2e (3.12, 1.75, ci_build_suite, macos-latest)
52+
- check-success=e2e (3.12, 1.75, ci_build_suite, ubuntu-latest)
53+
- check-success=e2e (3.12, 1.75, ci_config_suite, macos-latest)
54+
- check-success=e2e (3.12, 1.75, ci_config_suite, ubuntu-latest)
55+
- check-success=e2e (3.12, 1.75, ci_specialized_suite, macos-latest)
56+
- check-success=e2e (3.12, 1.75, ci_specialized_suite, ubuntu-latest)
57+
- check-success=e2e (3.12, 1.75, ci_workflow_suite, macos-latest)
58+
- check-success=e2e (3.12, 1.75, ci_workflow_suite, ubuntu-latest)
14559

14660
# At least 1 reviewer from maintainers
14761
- and:

AGENTS.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ These run automatically on commit if installed with `hatch run lint:install-hook
121121

122122
## Code Patterns
123123

124-
**Import Guidelines:**
124+
**Import Guidelines (ALWAYS FOLLOW):**
125125

126-
- **PEP 8: imports should be at the top**: All import statements must be placed at the top of the file, after module docstrings and before other code
127-
- **No local imports**: Do not place import statements inside functions, methods, or conditional blocks
126+
- **PEP 8: imports should be at the top**: All import statements MUST be placed at the top of the file, after module docstrings and before other code. This applies to ALL Python files in the project.
127+
- **No local imports**: Do not place import statements inside functions, methods, or conditional blocks under any circumstances
128128

129129
### Testing Pattern
130130

e2e/ci_bootstrap_parallel_suite.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
# -*- indent-tabs-mode: nil; tab-width: 2; sh-indentation: 2; -*-
3+
4+
# CI wrapper script for all bootstrap-parallel-related e2e tests
5+
# This script runs multiple bootstrap parallel tests sequentially to reduce CI job count
6+
# while preserving the ability to run individual tests during development.
7+
8+
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9+
source "$SCRIPTDIR/ci_suite_framework.sh"
10+
11+
init_suite "Bootstrap Parallel Test Suite" "bootstrap-parallel tests"
12+
13+
# Bootstrap parallel tests
14+
test_section "bootstrap parallel tests"
15+
run_test "bootstrap_parallel"
16+
run_test "bootstrap_parallel_git_url"
17+
run_test "bootstrap_parallel_git_url_tag"
18+
19+
finish_suite

e2e/ci_bootstrap_suite.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/bin/bash
2+
# -*- indent-tabs-mode: nil; tab-width: 2; sh-indentation: 2; -*-
3+
4+
# CI wrapper script for all bootstrap-related e2e tests
5+
# This script runs multiple bootstrap tests sequentially to reduce CI job count
6+
# while preserving the ability to run individual tests during development.
7+
8+
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9+
source "$SCRIPTDIR/ci_suite_framework.sh"
10+
11+
init_suite "Bootstrap Test Suite" "standard bootstrap tests (parallel bootstrap tests are in separate suite)"
12+
13+
# Bootstrap tests in logical order - basic first, then variations
14+
test_section "basic bootstrap tests"
15+
run_test "bootstrap"
16+
run_test "bootstrap_extras"
17+
run_test "bootstrap_build_tags"
18+
19+
test_section "bootstrap constraint tests"
20+
run_test "bootstrap_constraints"
21+
run_test "bootstrap_skip_constraints"
22+
run_test "bootstrap_conflicting_requirements"
23+
24+
test_section "bootstrap configuration tests"
25+
run_test "bootstrap_prerelease"
26+
run_test "bootstrap_cache"
27+
run_test "bootstrap_sdist_only"
28+
29+
test_section "bootstrap git URL tests"
30+
run_test "bootstrap_git_url"
31+
run_test "bootstrap_git_url_tag"
32+
33+
finish_suite

e2e/ci_build_suite.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
# -*- indent-tabs-mode: nil; tab-width: 2; sh-indentation: 2; -*-
3+
4+
# CI wrapper script for all build-related e2e tests
5+
# This script runs multiple build tests sequentially to reduce CI job count
6+
# while preserving the ability to run individual tests during development.
7+
8+
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9+
source "$SCRIPTDIR/ci_suite_framework.sh"
10+
11+
init_suite "Build Test Suite" "build-related tests"
12+
13+
# Build tests in logical order
14+
test_section "core build tests"
15+
run_test "build"
16+
run_test "build_order"
17+
run_test "build_steps"
18+
19+
test_section "advanced build tests"
20+
run_test "build_parallel"
21+
run_test "build_sequence_git_url"
22+
23+
finish_suite

e2e/ci_config_suite.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash
2+
# -*- indent-tabs-mode: nil; tab-width: 2; sh-indentation: 2; -*-
3+
4+
# CI wrapper script for all configuration/settings-related e2e tests
5+
# This script runs multiple configuration tests sequentially to reduce CI job count
6+
# while preserving the ability to run individual tests during development.
7+
8+
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9+
source "$SCRIPTDIR/ci_suite_framework.sh"
10+
11+
init_suite "Configuration Test Suite" "configuration/settings tests"
12+
13+
# Configuration and settings tests
14+
test_section "configuration tests"
15+
run_test "build_settings"
16+
run_test "override"
17+
run_test "extra_metadata"
18+
run_test "lint_requirements"
19+
20+
finish_suite

e2e/ci_specialized_suite.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/bin/bash
2+
# -*- indent-tabs-mode: nil; tab-width: 2; sh-indentation: 2; -*-
3+
4+
# CI wrapper script for all specialized build-related e2e tests
5+
# This script runs multiple specialized build tests sequentially to reduce CI job count
6+
# while preserving the ability to run individual tests during development.
7+
8+
SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
9+
source "$SCRIPTDIR/ci_suite_framework.sh"
10+
11+
init_suite "Specialized Build Test Suite" "specialized build tests"
12+
13+
# Specialized build tests
14+
test_section "specialized build system tests"
15+
run_test "meson"
16+
run_test "rust_vendor"
17+
18+
test_section "build standard tests"
19+
run_test "pep517_build_sdist"
20+
21+
test_section "platform-specific tests"
22+
run_test "elfdeps"
23+
24+
test_section "hook tests"
25+
run_test "prebuilt_wheel_hook"
26+
27+
finish_suite

0 commit comments

Comments
 (0)