From ad674cfd02b7c7edba12965191fc92ff403ef3eb Mon Sep 17 00:00:00 2001 From: Alex Lavrov <36633600+alexslavr@users.noreply.github.com> Date: Tue, 14 Apr 2026 18:53:09 +0400 Subject: [PATCH 1/2] Replace (p)npx with pnpm in publishing and workflow scripts (#33262) --- .github/workflows/build_all.yml | 4 ++-- .github/workflows/default_workflow.yml | 2 +- .github/workflows/demos_unit_tests.yml | 2 +- .github/workflows/demos_visual_tests.yml | 6 ++--- .../demos_visual_tests_frameworks.yml | 8 +++---- .github/workflows/lint.yml | 22 +++++++++---------- .github/workflows/packages_publishing.yml | 4 ++-- .github/workflows/playgrounds_tests.yml | 6 ++--- .../qunit_tests-additional-renovation.yml | 4 ++-- .github/workflows/qunit_tests-renovation.yml | 2 +- .github/workflows/renovation.yml | 4 ++-- .../workflows/run-testcafe-on-gh-pages.yml | 2 +- .github/workflows/styles.yml | 2 +- .github/workflows/testcafe_tests.yml | 2 +- .github/workflows/themebuilder_tests.yml | 10 ++++----- .github/workflows/wrapper_tests.yml | 14 ++++++------ package.json | 2 ++ 17 files changed, 49 insertions(+), 47 deletions(-) diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index b5402b4955bb..d42e2e872f53 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -81,5 +81,5 @@ jobs: - name: Build bundle run: | - npx devextreme-bundler-init custom-bundle - npx devextreme-bundler custom-bundle \ No newline at end of file + npx --no-install devextreme-bundler-init custom-bundle + npx --no-install devextreme-bundler custom-bundle \ No newline at end of file diff --git a/.github/workflows/default_workflow.yml b/.github/workflows/default_workflow.yml index f82ba955bc2a..2dacb5372aca 100644 --- a/.github/workflows/default_workflow.yml +++ b/.github/workflows/default_workflow.yml @@ -55,7 +55,7 @@ jobs: - name: Run targets run: > - pnpx nx run-many + pnpm exec nx run-many -t test --exclude devextreme diff --git a/.github/workflows/demos_unit_tests.yml b/.github/workflows/demos_unit_tests.yml index 99c94efa8497..92a5c917acbc 100644 --- a/.github/workflows/demos_unit_tests.yml +++ b/.github/workflows/demos_unit_tests.yml @@ -68,4 +68,4 @@ jobs: - name: Run unit tests working-directory: apps/demos - run: pnpx nx test + run: pnpm exec nx test diff --git a/.github/workflows/demos_visual_tests.yml b/.github/workflows/demos_visual_tests.yml index 6d0746c6b202..7ad42327089e 100644 --- a/.github/workflows/demos_visual_tests.yml +++ b/.github/workflows/demos_visual_tests.yml @@ -72,7 +72,7 @@ jobs: shell: bash run: | node ./tools/scripts/performance_log.js & - pnpx nx build devextreme + pnpm exec nx build devextreme testcafe: needs: [check-should-run, build] @@ -128,7 +128,7 @@ jobs: run: pnpm install - name: DevExtreme - Build - run: pnpx nx build devextreme + run: pnpm exec nx build devextreme - name: Run Web Server run: | @@ -155,7 +155,7 @@ jobs: CI_ENV: true # The `ignore` field in the visualtestrc.json should be disabled when running test locally run: | node ../../tools/scripts/performance_log.js & - pnpx nx test-testcafe + pnpm exec nx test-testcafe - name: Show accessibility warnings if: matrix.STRATEGY == 'accessibility' diff --git a/.github/workflows/demos_visual_tests_frameworks.yml b/.github/workflows/demos_visual_tests_frameworks.yml index b0a0ff9a8a6f..0d7746fda28c 100644 --- a/.github/workflows/demos_visual_tests_frameworks.yml +++ b/.github/workflows/demos_visual_tests_frameworks.yml @@ -150,7 +150,7 @@ jobs: - name: Prepare bundles working-directory: apps/demos - run: pnpx nx prepare-bundles + run: pnpm exec nx prepare-bundles - name: Demos - Run tsc working-directory: apps/demos @@ -262,7 +262,7 @@ jobs: matrix: include: - name: Lint code base (excluding demos) - command: pnpx nx lint-non-demos + command: pnpm exec nx lint-non-demos # NOTE: skipped due to enormous number of errors # - name: Lint demos (1/4) # command: CONSTEL=1/4 npm run lint-demos @@ -494,7 +494,7 @@ jobs: - name: Update bundles config working-directory: apps/demos - run: pnpx gulp update-config + run: pnpm exec gulp update-config - name: Create bundles dir run: mkdir -p apps/demos/bundles @@ -529,7 +529,7 @@ jobs: CI_ENV: true # The `ignore` field in the visualtestrc.json should be disabled when running test locally run: | node ../../tools/scripts/performance_log.js & - pnpx nx test-testcafe + pnpm exec nx test-testcafe - name: Sanitize job name if: ${{ failure() }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5ce860c70612..a031d2b4fd04 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -54,12 +54,12 @@ jobs: - name: Compile renovation working-directory: ./packages/devextreme run: | - pnpx nx compile:r + pnpm exec nx compile:r # Remove package install after upgrade to TypeScript >= 4.6 - name: Lint renovation working-directory: ./packages/devextreme - run: pnpx nx lint-renovation + run: pnpm exec nx lint-renovation TS: runs-on: devextreme-shr2 @@ -98,25 +98,25 @@ jobs: - name: Build working-directory: ./packages/devextreme - run: pnpx nx build + run: pnpm exec nx build - name: Lint TS working-directory: ./packages/devextreme env: DEBUG: eslint:cli-engine - run: pnpx nx lint-ts + run: pnpm exec nx lint-ts - name: Lint .d.ts working-directory: ./packages/devextreme env: DEBUG: eslint:cli-engine - run: pnpx nx lint-dts + run: pnpm exec nx lint-dts - name: Lint Testcafe tests working-directory: ./e2e/testcafe-devextreme env: DEBUG: eslint:cli-engine - run: pnpx nx lint + run: pnpm exec nx lint JS: runs-on: devextreme-shr2 @@ -155,13 +155,13 @@ jobs: - name: Build working-directory: ./packages/devextreme - run: pnpx nx build + run: pnpm exec nx build - name: Lint JS working-directory: ./packages/devextreme env: DEBUG: eslint:cli-engine - run: pnpx nx lint-js + run: pnpm exec nx lint-js texts: runs-on: devextreme-shr2 @@ -200,7 +200,7 @@ jobs: - name: Check texts working-directory: ./packages/devextreme - run: pnpx nx lint-texts + run: pnpm exec nx lint-texts CSS: runs-on: devextreme-shr2 @@ -239,7 +239,7 @@ jobs: - name: Lint CSS working-directory: ./packages/devextreme-scss - run: pnpx nx lint + run: pnpm exec nx lint component_exports: runs-on: devextreme-shr2 @@ -327,7 +327,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Lint wrappers - run: pnpx nx run-many -t lint -p devextreme-angular devextreme-react devextreme-vue + run: pnpm exec nx run-many -t lint -p devextreme-angular devextreme-react devextreme-vue notify: runs-on: devextreme-shr2 diff --git a/.github/workflows/packages_publishing.yml b/.github/workflows/packages_publishing.yml index 69a38426e704..d9e68cd43bd6 100644 --- a/.github/workflows/packages_publishing.yml +++ b/.github/workflows/packages_publishing.yml @@ -93,7 +93,7 @@ jobs: cp reportGithub.json ./artifacts/deps-scanner/ - name: Build artifacts package - run: npx ts-node tools/scripts/make-artifacts-package + run: pnpm run make-artifacts-package - uses: actions/upload-artifact@v4 with: @@ -158,7 +158,7 @@ jobs: PACKAGE: ${{ matrix.package }} run: | SCOPE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]'); - PACKAGE_DIR=$(npx ts-node tools/scripts/change-package-scope --tgz $PACKAGE.tgz --scope $SCOPE) + PACKAGE_DIR=$(pnpm --silent run change-package-scope --tgz $PACKAGE.tgz --scope $SCOPE) echo "packageDir=$PACKAGE_DIR" >> "$GITHUB_OUTPUT"; cd $PACKAGE_DIR; pnpm pkg get name --workspaces=false | tr -d '"' | sed -r 's/(.*)/name=\1/' >> "$GITHUB_OUTPUT"; diff --git a/.github/workflows/playgrounds_tests.yml b/.github/workflows/playgrounds_tests.yml index 33773c7207e0..57351c2aafa0 100644 --- a/.github/workflows/playgrounds_tests.yml +++ b/.github/workflows/playgrounds_tests.yml @@ -58,7 +58,7 @@ jobs: - name: Build working-directory: ./packages/devextreme - run: pnpx nx build + run: pnpm exec nx build - name: Zip artifacts working-directory: ./packages/devextreme @@ -134,11 +134,11 @@ jobs: - name: Build working-directory: ./packages/devextreme-${{ matrix.ARGS.platform }} - run: pnpx nx pack + run: pnpm exec nx pack - name: Check sources compilation working-directory: ./apps/${{ matrix.ARGS.platform }} - run: pnpx nx build + run: pnpm exec nx build # - name: Run test # if: ${{ matrix.ARGS.platform != 'angular' }} diff --git a/.github/workflows/qunit_tests-additional-renovation.yml b/.github/workflows/qunit_tests-additional-renovation.yml index 3dad5221302c..12ace813c86c 100644 --- a/.github/workflows/qunit_tests-additional-renovation.yml +++ b/.github/workflows/qunit_tests-additional-renovation.yml @@ -75,8 +75,8 @@ jobs: working-directory: ./packages/devextreme run: | node ../../tools/scripts/performance_log.js & - pnpx nx build:dev - pnpx nx build:systemjs + pnpm exec nx build:dev + pnpm exec nx build:systemjs - name: Zip artifacts working-directory: ./packages/devextreme diff --git a/.github/workflows/qunit_tests-renovation.yml b/.github/workflows/qunit_tests-renovation.yml index e1c8c2c5582f..bd3078125929 100644 --- a/.github/workflows/qunit_tests-renovation.yml +++ b/.github/workflows/qunit_tests-renovation.yml @@ -63,7 +63,7 @@ jobs: BUILD_INPROGRESS_RENOVATION: "true" run: | node ../../tools/scripts/performance_log.js & - pnpx nx build:dev + pnpm exec nx build:dev - name: Zip artifacts working-directory: ./packages/devextreme diff --git a/.github/workflows/renovation.yml b/.github/workflows/renovation.yml index a3a4fe4a338f..b82e37a463ad 100644 --- a/.github/workflows/renovation.yml +++ b/.github/workflows/renovation.yml @@ -53,10 +53,10 @@ jobs: - name: Build localization working-directory: ./packages/devextreme - run: pnpx gulp localization + run: pnpm exec gulp localization - name: Jest tests - run: pnpx nx test-jest devextreme + run: pnpm exec nx test-jest devextreme notify: runs-on: devextreme-shr2 diff --git a/.github/workflows/run-testcafe-on-gh-pages.yml b/.github/workflows/run-testcafe-on-gh-pages.yml index 4371ed448857..ef3bc0de079f 100644 --- a/.github/workflows/run-testcafe-on-gh-pages.yml +++ b/.github/workflows/run-testcafe-on-gh-pages.yml @@ -92,7 +92,7 @@ jobs: # DISABLE_DEMO_TEST_SETTINGS: ignore # Uncomment to ignore the `ignore` field # DISABLE_DEMO_TEST_SETTINGS: comparison-options # Uncomment to ignore the `comparison-options` field CI_ENV: true # The `ignore` field in the visualtestrc.json should be disabled when running test locally - run: pnpx nx test-testcafe + run: pnpm exec nx test-testcafe - name: Copy screenshots artifacts if: ${{ failure() }} diff --git a/.github/workflows/styles.yml b/.github/workflows/styles.yml index aca1a9034347..3abdcfbc6c4d 100644 --- a/.github/workflows/styles.yml +++ b/.github/workflows/styles.yml @@ -52,7 +52,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Run tests - run: pnpx nx test devextreme-scss + run: pnpm exec nx test devextreme-scss notify: runs-on: devextreme-shr2 diff --git a/.github/workflows/testcafe_tests.yml b/.github/workflows/testcafe_tests.yml index 99c6aae41027..630dda5d984d 100644 --- a/.github/workflows/testcafe_tests.yml +++ b/.github/workflows/testcafe_tests.yml @@ -75,7 +75,7 @@ jobs: shell: bash run: | node ./tools/scripts/performance_log.js & - pnpx nx build devextreme + pnpm exec nx build devextreme - name: Zip artifacts working-directory: ./packages/devextreme diff --git a/.github/workflows/themebuilder_tests.yml b/.github/workflows/themebuilder_tests.yml index ea0ca18a865f..1bcbe98a309b 100644 --- a/.github/workflows/themebuilder_tests.yml +++ b/.github/workflows/themebuilder_tests.yml @@ -54,23 +54,23 @@ jobs: - name: Build etalon bundles working-directory: ./packages/devextreme-scss - run: pnpx gulp style-compiler-themes-ci + run: pnpm exec gulp style-compiler-themes-ci - name: Build working-directory: ./packages/devextreme-themebuilder - run: pnpx nx build + run: pnpm exec nx build - name: Run themebuilder tests (full set, node) working-directory: ./packages/devextreme-themebuilder - run: pnpx nx test + run: pnpm exec nx test - name: Check styles for duplicate rules (generic) working-directory: ./packages/devextreme-scss - run: pnpx stylelint --config tests/bundles-stylelint-config.json "../devextreme/artifacts/**/dx.light.css" + run: pnpm exec stylelint --config tests/bundles-stylelint-config.json "../devextreme/artifacts/**/dx.light.css" - name: Check styles for duplicate rules (material) working-directory: ./packages/devextreme-scss - run: pnpx stylelint --config tests/bundles-stylelint-config.json "../devextreme/artifacts/**/dx.material.blue.light.css" + run: pnpm exec stylelint --config tests/bundles-stylelint-config.json "../devextreme/artifacts/**/dx.material.blue.light.css" notify: runs-on: devextreme-shr2 diff --git a/.github/workflows/wrapper_tests.yml b/.github/workflows/wrapper_tests.yml index 530d4c23c83a..5595bdf35554 100644 --- a/.github/workflows/wrapper_tests.yml +++ b/.github/workflows/wrapper_tests.yml @@ -63,7 +63,7 @@ jobs: env: BUILD_TEST_INTERNAL_PACKAGE: true working-directory: ./packages/devextreme - run: pnpx nx build + run: pnpm exec nx build - name: Generate wrappers run: pnpm run regenerate-all @@ -81,16 +81,16 @@ jobs: fi - name: Angular - Download Browser - run: pnpx puppeteer browsers install chrome@130.0.6723.69 + run: pnpm --filter devextreme-angular exec puppeteer browsers install chrome@130.0.6723.69 - name: Angular - Build - run: pnpx nx build devextreme-angular + run: pnpm exec nx build devextreme-angular - name: Angular - Run tests - run: pnpx nx test:dev devextreme-angular + run: pnpm exec nx test:dev devextreme-angular - name: Angular - Check packing - run: pnpx nx pack devextreme-angular + run: pnpm exec nx pack devextreme-angular - name: React - Run tests run: pnpm exec nx test devextreme-react @@ -99,10 +99,10 @@ jobs: run: pnpm exec nx pack devextreme-react - name: Vue - Run tests - run: pnpx nx test devextreme-vue + run: pnpm exec nx test devextreme-vue - name: Vue - Check packing - run: pnpx nx pack devextreme-vue + run: pnpm exec nx pack devextreme-vue - name: Archive internal-tools artifacts uses: actions/upload-artifact@v4 diff --git a/package.json b/package.json index 0a30667dae40..45c8e07f3518 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,8 @@ "regenerate-all": "nx run-many -t regenerate", "lint-staged": "lint-staged", "prepare": "husky install", + "change-package-scope": "ts-node tools/scripts/change-package-scope.ts", + "make-artifacts-package": "ts-node tools/scripts/make-artifacts-package.ts", "all:set-timestamp-version": "ts-node tools/scripts/set-timestamp-version.ts", "all:update-version": "ts-node tools/scripts/update-version.ts", "all:build": "ts-node tools/scripts/build-all.ts", From c0fb8aecaeceb908092b22ad81c142bf9368180a Mon Sep 17 00:00:00 2001 From: Alex Lavrov <36633600+alexslavr@users.noreply.github.com> Date: Fri, 17 Apr 2026 12:33:36 +0400 Subject: [PATCH 2/2] Skip cloud cache in qunit tests --- .github/workflows/qunit_tests-renovation.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/qunit_tests-renovation.yml b/.github/workflows/qunit_tests-renovation.yml index bd3078125929..aba9b4a1f407 100644 --- a/.github/workflows/qunit_tests-renovation.yml +++ b/.github/workflows/qunit_tests-renovation.yml @@ -13,7 +13,7 @@ on: env: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_TOKEN }} - NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} + NX_SKIP_NX_CACHE: true jobs: build: @@ -45,7 +45,6 @@ jobs: with: path: | ${{ env.STORE_PATH }} - .nx/cache key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store