@@ -104,7 +104,7 @@ jobs:
104104 result-encoding : string
105105 script : |
106106 const suiteName = `${{ github.event_name == 'workflow_dispatch' && inputs.suite || '-' }}`;
107- let result = [
107+ let suites = [
108108 "modernjs",
109109 // "nx",
110110 "rspress",
@@ -116,10 +116,10 @@ jobs:
116116 "nuxt",
117117 ]
118118 if (suiteName !== "-") {
119- result = allSuite .filter(item => item === suiteName)
119+ suites = suites .filter(suite => suite === suiteName)
120120 }
121121 return JSON.stringify({
122- include: result .map(suite => ({ suite }))
122+ include: suites .map(suite => ({ suite }))
123123 })
124124
125125 eco-ci :
@@ -174,21 +174,34 @@ jobs:
174174
175175 SUITE='${{ matrix.suite }}'
176176 SUITE_REF='${{ inputs.suiteRef || '-' }}'
177+ CONCLUSION='success'
177178 if [[ "$SUITE_REF" != "-" ]]; then
178179 # run test suite with suiteRef
179- pnpm tsx ecosystem-ci.ts run-suites --suite-commit "$SUITE_REF" "$SUITE"
180+ pnpm tsx ecosystem-ci.ts run-suites --suite-commit "$SUITE_REF" "$SUITE" || CONCLUSION='failure'
180181 echo "finish run $SUITE with $SUITE_REF"
181182 else
182183 # run test suite
183- pnpm tsx ecosystem-ci.ts run-suites "$SUITE"
184+ pnpm tsx ecosystem-ci.ts run-suites "$SUITE" || CONCLUSION='failure'
184185 echo "finish run $SUITE"
185186 fi
187+ echo "{\"conclusion\":\"$CONCLUSION\"}" >> "$RSPACK_DIR/$SUITE.json"
188+ - name : Upload Result
189+ uses : actions/upload-artifact@v4
190+ with :
191+ name : eco-ci-result-${{ matrix.suite }}
192+ path : ${{ matrix.suite }}.json
186193
187194 comment-compare-results :
188195 runs-on : ubuntu-latest
189196 needs : [create-comment, eco-ci]
190197 if : ${{ !cancelled() }}
191198 steps :
199+ - name : Download Result
200+ uses : actions/download-artifact@v4
201+ with :
202+ path : results
203+ pattern : eco-ci-result-*
204+ merge-multiple : true
192205 - uses : actions/github-script@v7
193206 with :
194207 github-token : ${{ secrets.GITHUB_TOKEN }}
@@ -206,7 +219,11 @@ jobs:
206219 .filter(job => job.conclusion !== 'skipped')
207220 .map(job => {
208221 const suite = job.name.replace(/^eco-ci \(([^)]+)\)$/, "$1")
209- return { suite, conclusion: job.conclusion, link: job.html_url }
222+ let conclusion = job.conclusion
223+ if (conclusion === "success") {
224+ conclusion = require(`./results/${suite}.json`).conclusion;
225+ }
226+ return { suite, conclusion, link: job.html_url }
210227 })
211228
212229 const conclusionEmoji = {
0 commit comments