Skip to content

Commit 3bec118

Browse files
authored
fix(ci): run integration tests from directory outside repo (#138)
1 parent f054434 commit 3bec118

3 files changed

Lines changed: 120 additions & 45 deletions

File tree

.github/workflows/integration-test-node.yml

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ jobs:
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 "## Node.js Available Versions" >> $GITHUB_STEP_SUMMARY
8797
echo '```' >> $GITHUB_STEP_SUMMARY
88-
./dist/dtvem${{ matrix.ext }} list-all node | head -20 >> $GITHUB_STEP_SUMMARY
98+
./dtvem${{ matrix.ext }} list-all node | 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 || '20.18.0' }}"
94104
run: |
95-
./dist/dtvem${{ matrix.ext }} install node ${{ inputs.version1 || '20.18.0' }}
105+
cd "$TEST_WORKSPACE"
106+
./dtvem${{ matrix.ext }} install node ${{ inputs.version1 || '20.18.0' }}
96107
shell: bash
97108

98109
- name: "Install version ${{ inputs.version2 || '22.11.0' }}"
99110
run: |
100-
./dist/dtvem${{ matrix.ext }} install node ${{ inputs.version2 || '22.11.0' }}
111+
cd "$TEST_WORKSPACE"
112+
./dtvem${{ matrix.ext }} install node ${{ inputs.version2 || '22.11.0' }}
101113
shell: bash
102114

103115
- name: "List installed versions"
104116
run: |
117+
cd "$TEST_WORKSPACE"
105118
echo "## Node.js Installed Versions" >> $GITHUB_STEP_SUMMARY
106119
echo '```' >> $GITHUB_STEP_SUMMARY
107-
./dist/dtvem${{ matrix.ext }} list node >> $GITHUB_STEP_SUMMARY
120+
./dtvem${{ matrix.ext }} list node >> $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 || '20.18.0' }}"
113126
run: |
114-
./dist/dtvem${{ matrix.ext }} global node ${{ inputs.version1 || '20.18.0' }}
127+
cd "$TEST_WORKSPACE"
128+
./dtvem${{ matrix.ext }} global node ${{ inputs.version1 || '20.18.0' }}
115129
shell: bash
116130

117131
- name: "Verify global version via current"
118132
run: |
119-
CURRENT=$(./dist/dtvem${{ matrix.ext }} current node)
133+
cd "$TEST_WORKSPACE"
134+
CURRENT=$(./dtvem${{ matrix.ext }} current node)
120135
echo "Current node version: $CURRENT"
121136
if [[ "$CURRENT" != *"${{ inputs.version1 || '20.18.0' }}"* ]]; then
122137
echo "ERROR: Expected ${{ inputs.version1 || '20.18.0' }} but got $CURRENT"
@@ -126,6 +141,7 @@ jobs:
126141

127142
- name: "Verify shim works (node --version)"
128143
run: |
144+
cd "$TEST_WORKSPACE"
129145
NODE_VERSION=$(node --version)
130146
echo "Node version from shim: $NODE_VERSION"
131147
if [[ "$NODE_VERSION" != *"${{ inputs.version1 || '20.18.0' }}"* ]]; then
@@ -136,11 +152,13 @@ jobs:
136152

137153
- name: "Switch global version to ${{ inputs.version2 || '22.11.0' }}"
138154
run: |
139-
./dist/dtvem${{ matrix.ext }} global node ${{ inputs.version2 || '22.11.0' }}
155+
cd "$TEST_WORKSPACE"
156+
./dtvem${{ matrix.ext }} global node ${{ inputs.version2 || '22.11.0' }}
140157
shell: bash
141158

142159
- name: "Verify version switched"
143160
run: |
161+
cd "$TEST_WORKSPACE"
144162
NODE_VERSION=$(node --version)
145163
echo "Node version from shim: $NODE_VERSION"
146164
if [[ "$NODE_VERSION" != *"${{ inputs.version2 || '22.11.0' }}"* ]]; 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 node ${{ inputs.version1 || '20.18.0' }}
157-
CURRENT=$(../dist/dtvem${{ matrix.ext }} current node)
175+
../dtvem${{ matrix.ext }} local node ${{ inputs.version1 || '20.18.0' }}
176+
CURRENT=$(../dtvem${{ matrix.ext }} current node)
158177
echo "Current node version in test-project: $CURRENT"
159178
if [[ "$CURRENT" != *"${{ inputs.version1 || '20.18.0' }}"* ]]; then
160179
echo "ERROR: Local override failed. Expected ${{ inputs.version1 || '20.18.0' }} but got $CURRENT"
@@ -170,45 +189,51 @@ jobs:
170189

171190
- name: "Test which command"
172191
run: |
192+
cd "$TEST_WORKSPACE"
173193
echo "## Node.js Which" >> $GITHUB_STEP_SUMMARY
174194
echo '```' >> $GITHUB_STEP_SUMMARY
175-
./dist/dtvem${{ matrix.ext }} which node >> $GITHUB_STEP_SUMMARY
195+
./dtvem${{ matrix.ext }} which node >> $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 "## Node.js Where" >> $GITHUB_STEP_SUMMARY
183204
echo '```' >> $GITHUB_STEP_SUMMARY
184-
./dist/dtvem${{ matrix.ext }} where node >> $GITHUB_STEP_SUMMARY
205+
./dtvem${{ matrix.ext }} where node >> $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 || '22.11.0' }}"
205228
run: |
206-
./dist/dtvem${{ matrix.ext }} uninstall node ${{ inputs.version2 || '22.11.0' }} --yes
229+
cd "$TEST_WORKSPACE"
230+
./dtvem${{ matrix.ext }} uninstall node ${{ inputs.version2 || '22.11.0' }} --yes
207231
shell: bash
208232

209233
- name: "Verify uninstall"
210234
run: |
211-
LIST_OUTPUT=$(./dist/dtvem${{ matrix.ext }} list node)
235+
cd "$TEST_WORKSPACE"
236+
LIST_OUTPUT=$(./dtvem${{ matrix.ext }} list node)
212237
echo "Installed versions after uninstall:"
213238
echo "$LIST_OUTPUT"
214239
if [[ "$LIST_OUTPUT" == *"${{ inputs.version2 || '22.11.0' }}"* ]]; then

.github/workflows/integration-test-python.yml

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ jobs:
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

Comments
 (0)