@@ -17,15 +17,19 @@ jobs:
1717 outputs :
1818 matrix : ${{ steps.scan.outputs.matrix }}
1919 steps :
20- - name : Checkout javaext-autotest
21- uses : actions/checkout @v4
20+ - name : Setup Node.js
21+ uses : actions/setup-node @v4
2222 with :
23- repository : wenytang-ms/javaext-autotest
23+ node-version : 20
24+
25+ - name : Install autotest CLI
26+ run : npm install -g @vscjava/vscode-autotest
2427
2528 - name : Scan test plans
2629 id : scan
2730 run : |
28- plans=$(ls test-plans/*.yaml | xargs -I{} basename {} .yaml | grep -v java-fresh-import | jq -R . | jq -sc .)
31+ pkg_dir=$(npm root -g)/@vscjava/vscode-autotest
32+ plans=$(ls "$pkg_dir"/test-plans/*.yaml | xargs -I{} basename {} .yaml | grep -v java-fresh-import | jq -R . | jq -sc .)
2933 echo "matrix=$plans" >> "$GITHUB_OUTPUT"
3034 echo "Found plans: $plans"
3135
4145 plan : ${{ fromJson(needs.discover.outputs.matrix) }}
4246
4347 steps :
44- - name : Checkout javaext-autotest
48+ - name : Checkout vscode-java-pack (for local test-plans overlay)
4549 uses : actions/checkout@v4
46- with :
47- repository : wenytang-ms/javaext-autotest
48- path : javaext-autotest
4950
5051 - name : Checkout vscode-java (test projects)
5152 uses : actions/checkout@v4
@@ -83,25 +84,38 @@ jobs:
8384 distribution : temurin
8485 java-version : 21
8586
86- - name : Install and build autotest
87- working-directory : javaext-autotest
88- run : npm ci && npm run build
87+ - name : Install autotest CLI
88+ run : npm install -g @vscjava/vscode-autotest
89+
90+ - name : Sync test plans from npm package
91+ shell : pwsh
92+ run : |
93+ $pkgDir = (npm root -g) + "/@vscjava/vscode-autotest"
94+ # Copy npm package test plans, then overlay with local test-plans (if any)
95+ $targetDir = "test-plans"
96+ if (!(Test-Path $targetDir)) { New-Item -ItemType Directory -Path $targetDir | Out-Null }
97+ Copy-Item "$pkgDir/test-plans/*.yaml" $targetDir -Force
98+ # Local test-plans in repo can override npm package versions
99+ if (Test-Path "test-plans-local") {
100+ Copy-Item "test-plans-local/*.yaml" $targetDir -Force
101+ }
102+ Write-Host "Test plans:"
103+ Get-ChildItem $targetDir -Filter "*.yaml" | ForEach-Object { Write-Host " $($_.Name)" }
89104
90105 - name : Run ${{ matrix.plan }}
91106 shell : pwsh
92- working-directory : javaext-autotest
93107 env :
94108 AZURE_OPENAI_ENDPOINT : ${{ secrets.AZURE_OPENAI_ENDPOINT }}
95109 AZURE_OPENAI_API_KEY : ${{ secrets.AZURE_OPENAI_API_KEY }}
96110 AZURE_OPENAI_DEPLOYMENT : ${{ secrets.AZURE_OPENAI_DEPLOYMENT }}
97- run : npx autotest run "test-plans/${{ matrix.plan }}.yaml"
111+ run : autotest run "test-plans/${{ matrix.plan }}.yaml"
98112
99113 - name : Upload results
100114 if : always()
101115 uses : actions/upload-artifact@v4
102116 with :
103117 name : results-${{ matrix.plan }}
104- path : javaext-autotest/ test-results/
118+ path : test-results/
105119 retention-days : 30
106120
107121 # ── Job 2b: Run a single test plan (when specified) ─────
@@ -111,11 +125,8 @@ jobs:
111125 timeout-minutes : 30
112126
113127 steps :
114- - name : Checkout javaext-autotest
128+ - name : Checkout vscode-java-pack
115129 uses : actions/checkout@v4
116- with :
117- repository : wenytang-ms/javaext-autotest
118- path : javaext-autotest
119130
120131 - name : Checkout vscode-java
121132 uses : actions/checkout@v4
@@ -153,25 +164,34 @@ jobs:
153164 distribution : temurin
154165 java-version : 21
155166
156- - name : Install and build autotest
157- working-directory : javaext-autotest
158- run : npm ci && npm run build
167+ - name : Install autotest CLI
168+ run : npm install -g @vscjava/vscode-autotest
169+
170+ - name : Sync test plans from npm package
171+ shell : pwsh
172+ run : |
173+ $pkgDir = (npm root -g) + "/@vscjava/vscode-autotest"
174+ $targetDir = "test-plans"
175+ if (!(Test-Path $targetDir)) { New-Item -ItemType Directory -Path $targetDir | Out-Null }
176+ Copy-Item "$pkgDir/test-plans/*.yaml" $targetDir -Force
177+ if (Test-Path "test-plans-local") {
178+ Copy-Item "test-plans-local/*.yaml" $targetDir -Force
179+ }
159180
160181 - name : Run ${{ inputs.test_plan }}
161182 shell : pwsh
162- working-directory : javaext-autotest
163183 env :
164184 AZURE_OPENAI_ENDPOINT : ${{ secrets.AZURE_OPENAI_ENDPOINT }}
165185 AZURE_OPENAI_API_KEY : ${{ secrets.AZURE_OPENAI_API_KEY }}
166186 AZURE_OPENAI_DEPLOYMENT : ${{ secrets.AZURE_OPENAI_DEPLOYMENT }}
167- run : npx autotest run "test-plans/${{ inputs.test_plan }}"
187+ run : autotest run "test-plans/${{ inputs.test_plan }}"
168188
169189 - name : Upload results
170190 if : always()
171191 uses : actions/upload-artifact@v4
172192 with :
173193 name : e2e-test-results
174- path : javaext-autotest/ test-results/
194+ path : test-results/
175195 retention-days : 30
176196
177197 # ── Job 3: Aggregate analysis ───────────────────────────
@@ -181,18 +201,13 @@ jobs:
181201 runs-on : ubuntu-latest
182202
183203 steps :
184- - name : Checkout javaext-autotest
185- uses : actions/checkout@v4
186- with :
187- repository : wenytang-ms/javaext-autotest
188-
189204 - name : Setup Node.js
190205 uses : actions/setup-node@v4
191206 with :
192207 node-version : 20
193208
194- - name : Install and build autotest
195- run : npm ci && npm run build
209+ - name : Install autotest CLI
210+ run : npm install -g @vscjava/vscode-autotest
196211
197212 - name : Download all results
198213 uses : actions/download-artifact@v4
@@ -209,7 +224,6 @@ jobs:
209224 if [ -d "$dir/$plan" ]; then
210225 cp -r "$dir/$plan" "test-results/$plan"
211226 elif [ -d "$dir" ]; then
212- # Results may be nested differently
213227 find "$dir" -name "results.json" -exec dirname {} \; | while read d; do
214228 name=$(basename "$d")
215229 cp -r "$d" "test-results/$name"
@@ -224,7 +238,7 @@ jobs:
224238 AZURE_OPENAI_ENDPOINT : ${{ secrets.AZURE_OPENAI_ENDPOINT }}
225239 AZURE_OPENAI_API_KEY : ${{ secrets.AZURE_OPENAI_API_KEY }}
226240 AZURE_OPENAI_DEPLOYMENT : ${{ secrets.AZURE_OPENAI_DEPLOYMENT }}
227- run : npx autotest analyze test-results --output test-results
241+ run : autotest analyze test-results --output test-results
228242
229243 - name : Write Job Summary
230244 if : always()
0 commit comments