@@ -416,19 +416,23 @@ jobs:
416416 pnpm run lint-demos
417417 fi
418418
419- check-generated-demos :
420- name : Check generated demos
419+ check-generated-demos-changed :
420+ name : Check generated demos (changed only)
421421 runs-on : devextreme-shr2
422422 timeout-minutes : 10
423423 needs : [check-should-run, get-changes, build-devextreme, determine-framework-tests-scope]
424- if : needs.check-should-run.outputs.should-run == 'true' && needs.determine-framework-tests-scope.outputs.framework-tests-scope != 'none'
424+ if : |
425+ always() &&
426+ needs.check-should-run.outputs.should-run == 'true' &&
427+ needs.determine-framework-tests-scope.result == 'success' &&
428+ needs.determine-framework-tests-scope.outputs.framework-tests-scope == 'changed' &&
429+ needs.build-devextreme.result == 'success'
425430
426431 steps :
427432 - name : Get sources
428433 uses : actions/checkout@v4
429434
430- - name : Download artifacts
431- if : github.event_name == 'pull_request'
435+ - name : Download changed demos
432436 uses : actions/download-artifact@v4
433437 with :
434438 name : changed-demos
@@ -506,6 +510,82 @@ jobs:
506510 exit 1
507511 fi
508512
513+ check-generated-demos-all :
514+ name : Check generated demos (${{ matrix.CONSTEL }})
515+ runs-on : devextreme-shr2
516+ timeout-minutes : 10
517+ needs : [check-should-run, build-devextreme, determine-framework-tests-scope]
518+ if : |
519+ always() &&
520+ needs.check-should-run.outputs.should-run == 'true' &&
521+ needs.determine-framework-tests-scope.result == 'success' &&
522+ needs.determine-framework-tests-scope.outputs.framework-tests-scope == 'all' &&
523+ needs.build-devextreme.result == 'success'
524+ strategy :
525+ fail-fast : false
526+ matrix :
527+ CONSTEL : ['1/5', '2/5', '3/5', '4/5', '5/5']
528+
529+ steps :
530+ - name : Get sources
531+ uses : actions/checkout@v4
532+
533+ - uses : pnpm/action-setup@v4
534+ with :
535+ run_install : false
536+
537+ - name : Use Node.js
538+ uses : actions/setup-node@v4
539+ with :
540+ node-version : ' 20'
541+
542+ - name : Download devextreme sources
543+ uses : actions/download-artifact@v4
544+ with :
545+ name : devextreme-sources
546+
547+ - name : Get pnpm store directory
548+ shell : bash
549+ run : |
550+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
551+
552+ - uses : actions/cache/restore@v4
553+ name : Restore pnpm cache
554+ with :
555+ path : ${{ env.STORE_PATH }}
556+ key : ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
557+ restore-keys : |
558+ ${{ runner.os }}-pnpm-store
559+
560+ - name : Install dependencies
561+ run : pnpm install --frozen-lockfile
562+
563+ - name : Install tgz
564+ working-directory : apps/demos
565+ run : pnpm add ../../devextreme-installer.tgz ../../devextreme-dist-installer.tgz ../../devextreme-react-installer.tgz ../../devextreme-vue-installer.tgz ../../devextreme-angular-installer.tgz
566+
567+ - name : Prepare JS
568+ working-directory : apps/demos
569+ run : pnpm run prepare-js
570+
571+ - name : Check generated JS demos
572+ working-directory : apps/demos
573+ env :
574+ CONSTEL : ${{ matrix.CONSTEL }}
575+ run : |
576+ echo "Running convert-to-js for split $CONSTEL"
577+ pnpm run convert-to-js
578+
579+ git add ./Demos -N
580+
581+ if git diff --exit-code . ':!package.json' ; then
582+ echo "Generated JS demos are up-to-date for split $CONSTEL"
583+ else
584+ echo "Generated JS demos are outdated for split $CONSTEL. Execute 'pnpm run convert-to-js split' and commit changes."
585+ echo "If you see another diff, ensure that extra listed files have LF endings."
586+ exit 1
587+ fi
588+
509589 testcafe-jquery :
510590 needs : [check-should-run, build-devextreme]
511591 if : |
0 commit comments