You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This structure keeps the high-level flow readable while organizing details into focused modules.
92
-
93
-
## Command Transformation Pipeline
94
-
95
-
One key improvement over Jinja is making command transformations explicit. When converting a test step to a Buildkite step, commands go through:
96
-
97
-
1.**Flatten** - Multi-node commands (list of lists) become single list
98
-
2.**Normalize** - Remove backslashes from YAML line continuations
99
-
3.**Test Targeting** - If only test files changed, run just those tests
100
-
4.**Coverage** - Inject coverage collection if enabled
101
-
5.**Join** - Combine into single command string
102
-
103
-
This happens in `docker/plugin_builder.py::build_docker_command()`. Adding a new transformation is straightforward - just create a new transformer in `transformers/`.
101
+
CI and Fastcheck have completely separate implementations with zero shared logic that has mode checks. This makes it easy to modify one without worrying about breaking the other.
104
102
105
103
## Where to Find Things
106
104
107
-
Coming from the Jinja template? Here's where logic moved:
108
-
109
-
**Build steps** (lines 14-179 in Jinja)
110
-
Now in: `steps/build_steps.py`
111
-
112
-
**Test step conversion** (lines 180-550 in Jinja)
113
-
Now in: `steps/test_steps.py` and `docker/plugin_builder.py`
114
-
115
-
**Test selection/blocking** (lines 508-530, 600-621 in Jinja)
116
-
Now in: `selection/blocking.py` and `selection/filtering.py`
117
-
118
-
**Coverage injection** (lines 33-158 in Jinja)
119
-
Now in: `transformers/coverage.py`
120
-
121
-
**Intelligent test targeting** (lines 20-158 in Jinja)
122
-
Now in: `transformers/test_targeting.py` and `selection/filtering.py`
105
+
**For CI pipeline:**
106
+
- Main logic: `ci/ci_pipeline.py`
107
+
- Build steps: `ci/docker_builds.py`
108
+
- Test filtering: `ci/test_filtering.py` and `ci/manual_trigger_rules.py`
0 commit comments