Migrate QUnit tests from SystemJs #44041
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Wrappers Tests | |
| on: | |
| pull_request: | |
| paths-ignore: | |
| - 'apps/**/*.md' | |
| merge_group: | |
| concurrency: | |
| group: wf-${{github.event.pull_request.number || github.ref || github.sha}}-${{github.workflow}} | |
| cancel-in-progress: true | |
| env: | |
| NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }} | |
| jobs: | |
| build: | |
| runs-on: devextreme-shr2 | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Get sources | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.node-version' | |
| - uses: pnpm/action-setup@v6 | |
| with: | |
| run_install: false | |
| - name: Get pnpm store directory | |
| shell: bash | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
| - uses: actions/cache@v5 | |
| name: Setup pnpm cache | |
| with: | |
| path: ${{ env.STORE_PATH }} | |
| key: ${{ runner.os }}-pnpm-cache-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-cache | |
| - name: Lookup nx cache | |
| id: lookup-nx-cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: | | |
| .nx/cache | |
| .nx/workspace-data/*.db | |
| .nx/workspace-data/*.db-wal | |
| .nx/workspace-data/*.db-shm | |
| key: ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ github.sha }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}- | |
| ${{ runner.os }}-nx-v2- | |
| lookup-only: true | |
| - name: Show nx cache status | |
| shell: bash | |
| run: | | |
| echo "Nx cache lookup exact hit: ${{ steps.lookup-nx-cache.outputs.cache-hit }}" | |
| echo "Nx cache primary key: ${{ steps.lookup-nx-cache.outputs.cache-primary-key }}" | |
| echo "Nx cache matched key: ${{ steps.lookup-nx-cache.outputs.cache-matched-key }}" | |
| if [ -z "${{ steps.lookup-nx-cache.outputs.cache-matched-key }}" ]; then | |
| echo "Nx cache lookup: miss" | |
| elif [ "${{ steps.lookup-nx-cache.outputs.cache-hit }}" = "true" ]; then | |
| echo "Nx cache lookup: exact hit" | |
| else | |
| echo "Nx cache lookup: partial hit via restore-keys" | |
| fi | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Setup nx cache | |
| id: setup-nx-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| .nx/cache | |
| .nx/workspace-data/*.db | |
| .nx/workspace-data/*.db-wal | |
| .nx/workspace-data/*.db-shm | |
| key: ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ github.sha }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}- | |
| ${{ runner.os }}-nx-v2- | |
| - name: Build devextreme package | |
| run: pnpm exec nx build devextreme -c testing | |
| check-regenerate: | |
| runs-on: devextreme-shr2 | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Get sources | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.node-version' | |
| - uses: pnpm/action-setup@v6 | |
| with: | |
| run_install: false | |
| - name: Get pnpm store directory | |
| shell: bash | |
| run: | | |
| echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
| - uses: actions/cache@v5 | |
| name: Setup pnpm cache | |
| with: | |
| path: ${{ env.STORE_PATH }} | |
| key: ${{ runner.os }}-pnpm-cache-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-cache | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Generate wrappers | |
| run: pnpm run regenerate-all | |
| - name: Check generated code | |
| shell: bash | |
| run: | | |
| git add . -N | |
| changes=$(git diff --name-status HEAD -- packages/devextreme-angular/src packages/devextreme-react/src packages/devextreme-vue/src) | |
| if [ -n "$changes" ]; then | |
| echo "Generated code is outdated. The following files have uncommitted changes:" | |
| echo "$changes"; | |
| echo "To update generated code, use "pnpm run regenerate-all" and commit changes." | |
| exit 1 | |
| fi | |
| test: | |
| timeout-minutes: 30 | |
| needs: build | |
| runs-on: devextreme-shr2 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| framework: [angular, react, vue] | |
| steps: | |
| - name: Get sources | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: '.node-version' | |
| - uses: pnpm/action-setup@v6 | |
| with: | |
| run_install: false | |
| - name: Get pnpm store directory | |
| shell: bash | |
| run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
| - uses: actions/cache@v5 | |
| name: Setup pnpm cache | |
| with: | |
| path: ${{ env.STORE_PATH }} | |
| key: ${{ runner.os }}-pnpm-cache-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm-cache | |
| - name: Lookup nx cache | |
| id: lookup-nx-cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: | | |
| .nx/cache | |
| .nx/workspace-data/*.db | |
| .nx/workspace-data/*.db-wal | |
| .nx/workspace-data/*.db-shm | |
| key: ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ matrix.framework }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ matrix.framework }}-${{ github.sha }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ matrix.framework }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-build- | |
| lookup-only: true | |
| - name: Show nx cache status | |
| shell: bash | |
| run: | | |
| echo "Nx cache lookup exact hit: ${{ steps.lookup-nx-cache.outputs.cache-hit }}" | |
| echo "Nx cache primary key: ${{ steps.lookup-nx-cache.outputs.cache-primary-key }}" | |
| echo "Nx cache matched key: ${{ steps.lookup-nx-cache.outputs.cache-matched-key }}" | |
| if [ -z "${{ steps.lookup-nx-cache.outputs.cache-matched-key }}" ]; then | |
| echo "Nx cache lookup: miss" | |
| elif [ "${{ steps.lookup-nx-cache.outputs.cache-hit }}" = "true" ]; then | |
| echo "Nx cache lookup: exact hit" | |
| else | |
| echo "Nx cache lookup: partial hit via restore-keys" | |
| fi | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Setup nx cache | |
| id: setup-nx-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| .nx/cache | |
| .nx/workspace-data/*.db | |
| .nx/workspace-data/*.db-wal | |
| .nx/workspace-data/*.db-shm | |
| key: ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ matrix.framework }}-${{ github.sha }} | |
| restore-keys: | | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ matrix.framework }}-${{ github.sha }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}-${{ matrix.framework }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-${{ github.job }}- | |
| ${{ runner.os }}-nx-v2-${{ github.workflow }}-build- | |
| - name: Download Browser | |
| if: matrix.framework == 'angular' | |
| run: | | |
| PUPPETEER_CMD="browsers install chrome@150.0.7871.124" | |
| pnpm --filter devextreme-angular exec puppeteer $PUPPETEER_CMD | |
| - name: Test ${{ matrix.framework }} | |
| env: | |
| NODE_OPTIONS: --max-old-space-size=8192 | |
| run: pnpm exec nx test devextreme-${{ matrix.framework }} | |
| - name: Pack ${{ matrix.framework }} | |
| run: pnpm exec nx pack devextreme-${{ matrix.framework }} |