Skip to content

Set unified and openai deps only for demos that use them. In package.json for Codesandbox export #43689

Set unified and openai deps only for demos that use them. In package.json for Codesandbox export

Set unified and openai deps only for demos that use them. In package.json for Codesandbox export #43689

name: Additional QUnit
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]
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' }}
jobs:
build:
runs-on: devextreme-shr2
name: Build
timeout-minutes: 25
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@v3
with:
version: 9
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 }}
.nx/cache
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store
- name: Install dependencies
run: |
corepack enable
pnpm install
- name: Build
env:
DEVEXTREME_TEST_CI: "true"
DOTNET_CLI_TELEMETRY_OPTOUT: "true"
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "true"
working-directory: ./packages/devextreme
run: |
pnpx nx build:dev
pnpx nx build:systemjs
- name: Zip artifacts
working-directory: ./packages/devextreme
run: |
7z a -tzip -mx3 -mmt2 artifacts.zip artifacts ../devextreme-scss/scss/bundles testing/tests/Renovation/widgets.json
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: devextreme-artifacts
path: packages/devextreme/artifacts.zip
retention-days: 1
qunit-tests-timezones:
needs: build
runs-on: devextreme-shr2
name: ${{ matrix.constel }}-${{ matrix.timezone }}
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
constel: [
'misc(1/2)',
'misc(2/2)',
'ui.editors(1/2)',
'ui.editors(2/2)',
'ui.grid(1/2)',
'ui.grid(2/2)',
'ui.scheduler(1/3)',
'ui.scheduler(2/3)',
'ui.scheduler(3/3)'
]
timezone: [ 'US/Pacific', 'Japan', 'Australia/ACT', 'Europe/London' ]
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Run QUnit tests
uses: ./.github/actions/run-qunit-tests
with:
name: ${{ matrix.constel }}-${{ matrix.timezone }}
constel: ${{ matrix.constel }}
browser: 'chrome'
timezone: ${{ matrix.timezone }}
headless: 'true'
useJQuery: 'false'
useCsp: 'true'
qunit-tests-performance:
needs: build
runs-on: devextreme-shr2
name: Performance
timeout-minutes: 25
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Run QUnit tests
uses: ./.github/actions/run-qunit-tests
with:
name: 'Performance'
browser: 'chrome'
isPerformance: 'true'
useJQuery: 'true'
headless: 'false'
useCsp: 'false'
qunit-tests-mobile-and-shadow-dom:
needs: build
runs-on: devextreme-shr2
name: ${{ matrix.constel }}-${{ matrix.kind }}
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
constel: [
'ui',
'ui.widgets(1/3)',
'ui.widgets(2/3)',
'ui.widgets(3/3)',
'ui.editors(1/2)',
'ui.editors(2/2)',
'ui.htmlEditor',
'ui.grid(1/2)',
'ui.grid(2/2)',
'ui.scheduler(1/3)',
'ui.scheduler(2/3)',
'ui.scheduler(3/3)',
'viz'
]
kind: [ 'shadow-dom', 'ios10', 'android6' ]
include:
- headless: false
- kind: 'shadow-dom'
userAgent: ''
useShadowDom: true
- kind: 'ios10'
userAgent: 'ios10'
- kind: 'android6'
userAgent: 'android6'
useJQuery: true
- constel: 'ui'
headless: true
- constel: 'viz'
headless: true
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Run QUnit tests
uses: ./.github/actions/run-qunit-tests
with:
name: ${{ matrix.constel }}-${{ matrix.kind }}
constel: ${{ matrix.constel }}
browser: 'chrome'
useJQuery: ${{ matrix.useJquery || 'false' }}
userAgent: ${{ matrix.userAgent }}
useShadowDom: ${{ matrix.useShadowDom }}
headless: ${{ matrix.headless }}
useCsp: 'true'
qunit-tests-firefox:
needs: build
runs-on: devextreme-shr2
name: ${{ matrix.constel }}-firefox
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
constel: [
'export',
'misc',
'ui',
'ui.editors(1/2)',
'ui.editors(2/2)',
'ui.htmlEditor',
'ui.grid(1/2)',
'ui.grid(2/2)',
'ui.scheduler(1/3)',
'ui.scheduler(2/3)',
'ui.scheduler(3/3)',
'viz',
'renovation'
]
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Run QUnit tests
uses: ./.github/actions/run-qunit-tests
with:
name: ${{ matrix.constel }}-firefox
constel: ${{ matrix.constel }}
browser: 'firefox'
useJQuery: 'true'
headless: 'true'
useCsp: 'true'
qunit-tests-common:
needs: build
runs-on: devextreme-shr2
name: ${{ matrix.constel }}-chrome
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
constel: [ 'export', 'ui.htmlEditor' ]
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Run QUnit tests
uses: ./.github/actions/run-qunit-tests
with:
name: ${{ matrix.constel }}-chrome
constel: ${{ matrix.constel }}
browser: 'chrome'
useJQuery: 'true'
headless: 'true'
useCsp: 'true'
qunit-tests-no-csp:
needs: build
runs-on: devextreme-shr2
name: ${{ matrix.constel }}-no-csp
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
constel: [ 'misc(1/2)', 'misc(2/2)' ]
steps:
- name: Get sources
uses: actions/checkout@v4
- name: Run QUnit tests
uses: ./.github/actions/run-qunit-tests
with:
name: ${{ matrix.constel }}-no-csp
constel: ${{ matrix.constel }}
browser: 'chrome'
useJQuery: 'true'
headless: 'true'
useCsp: 'false'
notify:
runs-on: devextreme-shr2
name: Send notifications
needs: [
build,
qunit-tests-timezones,
qunit-tests-performance,
qunit-tests-mobile-and-shadow-dom,
qunit-tests-firefox,
qunit-tests-no-csp
]
if: github.event_name != 'pull_request' && contains(needs.*.result, 'failure')
steps:
- uses: actions/checkout@v4
- uses: DevExpress/github-actions/send-teams-notification@v1
with:
hook_url: ${{secrets.TEAMS_ALERT}}
bearer_token: ${{secrets.GITHUB_TOKEN}}
specific_repo: DevExpress/DevExtreme