Skip to content

Merge remote-tracking branch 'origin(upstream)/26_1' into 26_1-anti-f… #196

Merge remote-tracking branch 'origin(upstream)/26_1' into 26_1-anti-f…

Merge remote-tracking branch 'origin(upstream)/26_1' into 26_1-anti-f… #196

name: Wrappers E2E Tests
concurrency:
group: wf-${{github.event.pull_request.number || github.sha}}-${{github.workflow}}
cancel-in-progress: true
on:
pull_request:
paths-ignore:
- 'apps/**/*.md'
push:
branches: [24_2, 25_*, 26_*]
workflow_dispatch:
env:
NX_SKIP_NX_CACHE: ${{ contains(github.event.pull_request.labels.*.name, 'skip-cache') && 'true' || 'false' }}
jobs:
build-packages:
runs-on: devextreme-shr2
name: Build DevExtreme and Wrappers
timeout-minutes: 40
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v4
with:
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
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: Build all DevExtreme packages
run: pnpm nx all:build-testing workflows
- name: Build wrappers apps
working-directory: e2e/wrappers
run: |
pnpm run build:all
mkdir -p builds-artifacts
7z a -tzip -mx3 -mmt2 builds-artifacts/react19-build.zip ./builders/react19/dist/*
7z a -tzip -mx3 -mmt2 builds-artifacts/vue3-build.zip ./builders/vue3/dist/*
7z a -tzip -mx3 -mmt2 builds-artifacts/angular19-build.zip ./builders/angular19/dist/*
- name: Upload wrappers builds
uses: actions/upload-artifact@v4
with:
name: wrappers-builds
path: e2e/wrappers/builds-artifacts
retention-days: 1
test-wrappers:
needs: build-packages
runs-on: devextreme-shr2
name: Test ${{ matrix.framework }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
framework: [react19, vue3, angular19]
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Download wrappers builds
uses: actions/download-artifact@v4
with:
name: wrappers-builds
path: ./wrappers-builds
- name: Unpack wrapper build for ${{ matrix.framework }}
run: |
7z x wrappers-builds/${{ matrix.framework }}-build.zip -o./e2e/wrappers/builders/${{ matrix.framework }}/dist
- name: Setup Chrome
uses: ./.github/actions/setup-chrome
with:
chrome-version: '145.0.7632.67'
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v4
with:
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v4
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: Start server for ${{ matrix.framework }}
working-directory: e2e/wrappers
run: |
pnpm run start:${{ matrix.framework }} &
sleep 10
- name: Run tests for ${{ matrix.framework }}
working-directory: e2e/wrappers
run: pnpm run test:${{ matrix.framework }}
- name: Upload test artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: test-fails-${{matrix.framework}}
path: e2e/wrappers/screenshots
if-no-files-found: ignore