4646 - os : windows-latest
4747 platform : windows
4848 ext : " .exe"
49+ env :
50+ # Run tests from a directory outside the repo to avoid picking up .dtvem/runtimes.json
51+ TEST_WORKSPACE : ${{ github.workspace }}/../dtvem-test-workspace
4952
5053 steps :
5154 - name : Checkout code
@@ -81,42 +84,54 @@ jobs:
8184 "$env:USERPROFILE\.dtvem\shims" | Out-File -FilePath $env:GITHUB_PATH -Append
8285 "$env:USERPROFILE\.dtvem\bin" | Out-File -FilePath $env:GITHUB_PATH -Append
8386
87+ - name : Set up test workspace
88+ run : |
89+ mkdir -p "$TEST_WORKSPACE"
90+ cp ./dist/dtvem${{ matrix.ext }} "$TEST_WORKSPACE/"
91+ shell : bash
92+
8493 - name : " List available versions"
8594 run : |
95+ cd "$TEST_WORKSPACE"
8696 echo "## Python Available Versions" >> $GITHUB_STEP_SUMMARY
8797 echo '```' >> $GITHUB_STEP_SUMMARY
88- ./dist/ dtvem${{ matrix.ext }} list-all python | head -20 >> $GITHUB_STEP_SUMMARY
98+ ./dtvem${{ matrix.ext }} list-all python | head -20 >> $GITHUB_STEP_SUMMARY || true
8999 echo '```' >> $GITHUB_STEP_SUMMARY
90100 echo "" >> $GITHUB_STEP_SUMMARY
91101 shell : bash
92102
93103 - name : " Install version ${{ inputs.version1 || '3.11.9' }}"
94104 run : |
95- ./dist/dtvem${{ matrix.ext }} install python ${{ inputs.version1 || '3.11.9' }}
105+ cd "$TEST_WORKSPACE"
106+ ./dtvem${{ matrix.ext }} install python ${{ inputs.version1 || '3.11.9' }}
96107 shell : bash
97108
98109 - name : " Install version ${{ inputs.version2 || '3.12.7' }}"
99110 run : |
100- ./dist/dtvem${{ matrix.ext }} install python ${{ inputs.version2 || '3.12.7' }}
111+ cd "$TEST_WORKSPACE"
112+ ./dtvem${{ matrix.ext }} install python ${{ inputs.version2 || '3.12.7' }}
101113 shell : bash
102114
103115 - name : " List installed versions"
104116 run : |
117+ cd "$TEST_WORKSPACE"
105118 echo "## Python Installed Versions" >> $GITHUB_STEP_SUMMARY
106119 echo '```' >> $GITHUB_STEP_SUMMARY
107- ./dist/ dtvem${{ matrix.ext }} list python >> $GITHUB_STEP_SUMMARY
120+ ./dtvem${{ matrix.ext }} list python >> $GITHUB_STEP_SUMMARY
108121 echo '```' >> $GITHUB_STEP_SUMMARY
109122 echo "" >> $GITHUB_STEP_SUMMARY
110123 shell : bash
111124
112125 - name : " Set global version to ${{ inputs.version1 || '3.11.9' }}"
113126 run : |
114- ./dist/dtvem${{ matrix.ext }} global python ${{ inputs.version1 || '3.11.9' }}
127+ cd "$TEST_WORKSPACE"
128+ ./dtvem${{ matrix.ext }} global python ${{ inputs.version1 || '3.11.9' }}
115129 shell : bash
116130
117131 - name : " Verify global version via current"
118132 run : |
119- CURRENT=$(./dist/dtvem${{ matrix.ext }} current python)
133+ cd "$TEST_WORKSPACE"
134+ CURRENT=$(./dtvem${{ matrix.ext }} current python)
120135 echo "Current python version: $CURRENT"
121136 if [[ "$CURRENT" != *"${{ inputs.version1 || '3.11.9' }}"* ]]; then
122137 echo "ERROR: Expected ${{ inputs.version1 || '3.11.9' }} but got $CURRENT"
@@ -126,6 +141,7 @@ jobs:
126141
127142 - name : " Verify shim works (python --version)"
128143 run : |
144+ cd "$TEST_WORKSPACE"
129145 PYTHON_VERSION=$(python --version)
130146 echo "Python version from shim: $PYTHON_VERSION"
131147 if [[ "$PYTHON_VERSION" != *"${{ inputs.version1 || '3.11.9' }}"* ]]; then
@@ -136,11 +152,13 @@ jobs:
136152
137153 - name : " Switch global version to ${{ inputs.version2 || '3.12.7' }}"
138154 run : |
139- ./dist/dtvem${{ matrix.ext }} global python ${{ inputs.version2 || '3.12.7' }}
155+ cd "$TEST_WORKSPACE"
156+ ./dtvem${{ matrix.ext }} global python ${{ inputs.version2 || '3.12.7' }}
140157 shell : bash
141158
142159 - name : " Verify version switched"
143160 run : |
161+ cd "$TEST_WORKSPACE"
144162 PYTHON_VERSION=$(python --version)
145163 echo "Python version from shim: $PYTHON_VERSION"
146164 if [[ "$PYTHON_VERSION" != *"${{ inputs.version2 || '3.12.7' }}"* ]]; then
@@ -151,10 +169,11 @@ jobs:
151169
152170 - name : " Test local version override"
153171 run : |
172+ cd "$TEST_WORKSPACE"
154173 mkdir -p test-project
155174 cd test-project
156- ../dist/ dtvem${{ matrix.ext }} local python ${{ inputs.version1 || '3.11.9' }}
157- CURRENT=$(../dist/ dtvem${{ matrix.ext }} current python)
175+ ../dtvem${{ matrix.ext }} local python ${{ inputs.version1 || '3.11.9' }}
176+ CURRENT=$(../dtvem${{ matrix.ext }} current python)
158177 echo "Current python version in test-project: $CURRENT"
159178 if [[ "$CURRENT" != *"${{ inputs.version1 || '3.11.9' }}"* ]]; then
160179 echo "ERROR: Local override failed. Expected ${{ inputs.version1 || '3.11.9' }} but got $CURRENT"
@@ -170,45 +189,51 @@ jobs:
170189
171190 - name : " Test which command"
172191 run : |
192+ cd "$TEST_WORKSPACE"
173193 echo "## Python Which" >> $GITHUB_STEP_SUMMARY
174194 echo '```' >> $GITHUB_STEP_SUMMARY
175- ./dist/ dtvem${{ matrix.ext }} which python >> $GITHUB_STEP_SUMMARY
195+ ./dtvem${{ matrix.ext }} which python >> $GITHUB_STEP_SUMMARY
176196 echo '```' >> $GITHUB_STEP_SUMMARY
177197 echo "" >> $GITHUB_STEP_SUMMARY
178198 shell : bash
179199
180200 - name : " Test where command"
181201 run : |
202+ cd "$TEST_WORKSPACE"
182203 echo "## Python Where" >> $GITHUB_STEP_SUMMARY
183204 echo '```' >> $GITHUB_STEP_SUMMARY
184- ./dist/ dtvem${{ matrix.ext }} where python >> $GITHUB_STEP_SUMMARY
205+ ./dtvem${{ matrix.ext }} where python >> $GITHUB_STEP_SUMMARY
185206 echo '```' >> $GITHUB_STEP_SUMMARY
186207 echo "" >> $GITHUB_STEP_SUMMARY
187208 shell : bash
188209
189210 - name : " Test reshim command"
190211 run : |
191- ./dist/dtvem${{ matrix.ext }} reshim
212+ cd "$TEST_WORKSPACE"
213+ ./dtvem${{ matrix.ext }} reshim
192214 echo "Reshim completed successfully"
193215 shell : bash
194216
195217 - name : " Test freeze command"
196218 run : |
219+ cd "$TEST_WORKSPACE"
197220 echo "## Freeze Output" >> $GITHUB_STEP_SUMMARY
198221 echo '```' >> $GITHUB_STEP_SUMMARY
199- ./dist/ dtvem${{ matrix.ext }} freeze >> $GITHUB_STEP_SUMMARY
222+ ./dtvem${{ matrix.ext }} freeze >> $GITHUB_STEP_SUMMARY
200223 echo '```' >> $GITHUB_STEP_SUMMARY
201224 echo "" >> $GITHUB_STEP_SUMMARY
202225 shell : bash
203226
204227 - name : " Uninstall version ${{ inputs.version2 || '3.12.7' }}"
205228 run : |
206- ./dist/dtvem${{ matrix.ext }} uninstall python ${{ inputs.version2 || '3.12.7' }} --yes
229+ cd "$TEST_WORKSPACE"
230+ ./dtvem${{ matrix.ext }} uninstall python ${{ inputs.version2 || '3.12.7' }} --yes
207231 shell : bash
208232
209233 - name : " Verify uninstall"
210234 run : |
211- LIST_OUTPUT=$(./dist/dtvem${{ matrix.ext }} list python)
235+ cd "$TEST_WORKSPACE"
236+ LIST_OUTPUT=$(./dtvem${{ matrix.ext }} list python)
212237 echo "Installed versions after uninstall:"
213238 echo "$LIST_OUTPUT"
214239 if [[ "$LIST_OUTPUT" == *"${{ inputs.version2 || '3.12.7' }}"* ]]; then
0 commit comments