4444 build :
4545 needs : precheck
4646 runs-on : ${{ matrix.os }}
47+ env :
48+ PNPM_HOME : ${{ runner.temp }}/pnpm
4749 strategy :
4850 fail-fast : true
4951 matrix :
6466 enable-cache : true
6567 cache-dependency-glob : " uv.lock"
6668
69+ - name : Setup pnpm
70+ uses : pnpm/action-setup@v4
71+ with :
72+ version : 10
73+
74+ - name : Setup Node
75+ uses : actions/setup-node@v4
76+ with :
77+ node-version : ' 22'
78+
6779 - name : Install Nix on macOS
6880 if : runner.os == 'macOS'
6981 uses : DeterminateSystems/nix-installer-action@v16
@@ -73,16 +85,21 @@ jobs:
7385 uv venv --python "${{ matrix.python_version }}" \
7486 && uv sync --all-extras \
7587 && uv pip install pip \
88+ && mkdir -p "$PNPM_HOME" \
89+ && echo "$PNPM_HOME" >> "$GITHUB_PATH" \
7690 && echo "/home/linuxbrew/.linuxbrew/bin" >> "$GITHUB_PATH" \
7791 && if [ -d /nix/var/nix/profiles/default/bin ]; then echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"; fi
7892
7993 - name : Run standard test suite
8094 run : |
8195 source .venv/bin/activate \
96+ && export PATH="$PNPM_HOME:$PATH" \
8297 && python tests.py
8398
8499 live-integration :
85100 runs-on : ${{ matrix.os }}
101+ env :
102+ PNPM_HOME : ${{ runner.temp }}/pnpm
86103 strategy :
87104 fail-fast : true
88105 matrix :
@@ -102,6 +119,16 @@ jobs:
102119 enable-cache : true
103120 cache-dependency-glob : " uv.lock"
104121
122+ - name : Setup pnpm
123+ uses : pnpm/action-setup@v4
124+ with :
125+ version : 10
126+
127+ - name : Setup Node
128+ uses : actions/setup-node@v4
129+ with :
130+ node-version : ' 22'
131+
105132 - name : Install Nix
106133 uses : DeterminateSystems/nix-installer-action@v16
107134
@@ -121,6 +148,8 @@ jobs:
121148 uv venv --python "3.12" \
122149 && uv sync --all-extras \
123150 && uv pip install pip \
151+ && mkdir -p "$PNPM_HOME" \
152+ && echo "$PNPM_HOME" >> "$GITHUB_PATH" \
124153 && echo "/home/linuxbrew/.linuxbrew/bin" >> "$GITHUB_PATH" \
125154 && echo "/nix/var/nix/profiles/default/bin" >> "$GITHUB_PATH"
126155
@@ -134,6 +163,7 @@ jobs:
134163 if : runner.os == 'macOS'
135164 run : |
136165 source .venv/bin/activate \
166+ && export PATH="$PNPM_HOME:$PATH" \
137167 && python -m unittest \
138168 tests.LiveUpdateAndUninstallTest.test_brew_provider_live_update_and_uninstall \
139169 tests.LiveUpdateAndUninstallTest.test_pip_provider_live_update_and_uninstall \
@@ -148,6 +178,7 @@ jobs:
148178 if : runner.os == 'Linux'
149179 run : |
150180 source .venv/bin/activate \
181+ && export PATH="$PNPM_HOME:$PATH" \
151182 && python -m unittest \
152183 tests.LiveUpdateAndUninstallTest.test_pip_provider_live_update_and_uninstall \
153184 tests.LiveUpdateAndUninstallTest.test_npm_provider_live_update_and_uninstall \
@@ -160,7 +191,7 @@ jobs:
160191 - name : Run root-required live package lifecycle tests on Linux
161192 if : runner.os == 'Linux'
162193 run : |
163- sudo env "PATH=$PATH:/nix/var/nix/profiles/default/bin" ./.venv/bin/python -m unittest \
194+ sudo env "PATH=$PNPM_HOME:$ PATH:/nix/var/nix/profiles/default/bin" ./.venv/bin/python -m unittest \
164195 tests.LiveUpdateAndUninstallTest.test_apt_provider_live_update_and_uninstall \
165196 tests.LiveUpdateAndUninstallTest.test_pyinfra_provider_live_update_and_uninstall \
166197 tests.LiveUpdateAndUninstallTest.test_ansible_provider_live_update_and_uninstall
0 commit comments