Speed up CI by parallelizing pulp-cli livetests and using uv. - #7954
Speed up CI by parallelizing pulp-cli livetests and using uv.#7954gerrod3 wants to merge 1 commit into
Conversation
Assisted-By: Cursor Grok 4.5 Co-authored-by: Cursor <cursoragent@cursor.com>
| {%- endfor %} | ||
|
|
||
| # This MUST be the ONLY call to pip install in inside the container. | ||
| # This MUST be the ONLY package install inside the container. |
There was a problem hiding this comment.
It might have been at one point. Think the main reason we want there to be only one install is so that dependency resolution is more reliable, but I can't remember.
There was a problem hiding this comment.
This is for pip that ignores already installed packages when called a second time.
I think uv is addressing this in some way. But we need to be careful.
(In some cases you end up with broken packages, in others you end up with package versions that weren't the ones you set out to test in the first place.)
There was a problem hiding this comment.
But I think the "full solution" is not to use "uv pip" but to go "uv" all the way.
| cmd_stdin_prefix bash -c "cat > /tmp/bindings_requirements.txt" < bindings_requirements.txt | ||
| cmd_stdin_prefix bash -c "cat > /tmp/bindings_constraints.txt" < bindings_constraints.txt | ||
| cmd_prefix pip3 install -r /tmp/unittest_requirements.txt -r /tmp/functest_requirements.txt -r /tmp/bindings_requirements.txt -c /tmp/bindings_constraints.txt | ||
| cmd_prefix uv pip install -r /tmp/unittest_requirements.txt -r /tmp/functest_requirements.txt -r /tmp/bindings_requirements.txt -c /tmp/bindings_constraints.txt |
There was a problem hiding this comment.
Seems like there are a few installs, not just the one.
| enable-cache: true | ||
| - name: "Configure uv to use system Python" | ||
| run: | | ||
| echo "UV_SYSTEM_PYTHON=1" >> "$GITHUB_ENV" |
There was a problem hiding this comment.
Is it possible to set this globally rather than needing to specify it everywhere
There was a problem hiding this comment.
We could. Currently this comes from a install_uv macro in the plugin template. We could change it so that each workflow has UV_SYSTEM_PYTHON=1 in their global env config.
This is the first test to see if we can get the CI back under 30 mins. There's some more areas we can improve, but going to tackle this incrementally.
Assisted-By: Cursor Grok 4.5
📜 Checklist
See: Pull Request Walkthrough