diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 3cb0a1ef782b..c7b193a95d71 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -4,8 +4,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] jobs: build: diff --git a/.github/workflows/default_workflow.yml b/.github/workflows/default_workflow.yml index 2dacb5372aca..0cd0af4cb58d 100644 --- a/.github/workflows/default_workflow.yml +++ b/.github/workflows/default_workflow.yml @@ -8,9 +8,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: - - "[0-9][0-9]_[0-9]" env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} diff --git a/.github/workflows/demos_unit_tests.yml b/.github/workflows/demos_unit_tests.yml index 92a5c917acbc..597e7bbdba91 100644 --- a/.github/workflows/demos_unit_tests.yml +++ b/.github/workflows/demos_unit_tests.yml @@ -8,17 +8,15 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] workflow_dispatch: env: - RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }} + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: check-should-run: name: Check if tests should run - runs-on: devextreme-shr2 + runs-on: ubuntu-latest outputs: should-run: ${{ steps.check.outputs.should-run }} steps: diff --git a/.github/workflows/demos_visual_tests.yml b/.github/workflows/demos_visual_tests.yml index 4ff43ad4e679..1bd4cd7246f9 100644 --- a/.github/workflows/demos_visual_tests.yml +++ b/.github/workflows/demos_visual_tests.yml @@ -8,19 +8,17 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] workflow_dispatch: env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} BUILD_TEST_INTERNAL_PACKAGE: true - RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }} + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: check-should-run: name: Check if tests should run - runs-on: devextreme-shr2 + runs-on: ubuntu-latest outputs: should-run: ${{ steps.check.outputs.should-run }} steps: @@ -31,8 +29,6 @@ jobs: build: runs-on: ubuntu-22.04 name: Build devextreme - needs: check-should-run - if: needs.check-should-run.outputs.should-run == 'true' timeout-minutes: 20 steps: @@ -73,13 +69,28 @@ jobs: node ./tools/scripts/performance_log.js & pnpm exec nx build devextreme + prepare-matrix: + name: Prepare testcafe matrix + runs-on: ubuntu-latest + needs: check-should-run + outputs: + strategy: ${{ steps.set.outputs.strategy }} + steps: + - name: Build matrix + id: set + run: | + if [ "${{ needs.check-should-run.outputs.should-run }}" = "true" ]; then + echo 'strategy=["screenshots","accessibility"]' >> $GITHUB_OUTPUT + else + echo 'strategy=["accessibility"]' >> $GITHUB_OUTPUT + fi + testcafe: - needs: [check-should-run, build] - if: needs.check-should-run.outputs.should-run == 'true' + needs: [prepare-matrix, build] strategy: fail-fast: false matrix: - STRATEGY: [screenshots, accessibility] + STRATEGY: ${{ fromJSON(needs.prepare-matrix.outputs.strategy) }} THEME: ['generic.light', 'material.blue.light', 'fluent.blue.light'] CONSTEL: [jquery(1/4), jquery(2/4), jquery(3/4), jquery(4/4)] env: diff --git a/.github/workflows/demos_visual_tests_frameworks.yml b/.github/workflows/demos_visual_tests_frameworks.yml index 6d96a7b2f6d5..d7c437f7ea8a 100644 --- a/.github/workflows/demos_visual_tests_frameworks.yml +++ b/.github/workflows/demos_visual_tests_frameworks.yml @@ -8,19 +8,17 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] workflow_dispatch: env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} BUILD_TEST_INTERNAL_PACKAGE: true - RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }} + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: check-should-run: name: Check if tests should run - runs-on: devextreme-shr2 + runs-on: ubuntu-latest outputs: should-run: ${{ steps.check.outputs.should-run }} steps: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9a39a994753b..83305960ac4e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -8,8 +8,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} diff --git a/.github/workflows/paths.yml b/.github/workflows/paths.yml index 773a34c86489..525e3c3a7640 100644 --- a/.github/workflows/paths.yml +++ b/.github/workflows/paths.yml @@ -8,8 +8,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] env: MAX_LENGTH: 170 diff --git a/.github/workflows/playgrounds_tests.yml b/.github/workflows/playgrounds_tests.yml index a5f2df396f14..362cfaef2035 100644 --- a/.github/workflows/playgrounds_tests.yml +++ b/.github/workflows/playgrounds_tests.yml @@ -8,17 +8,27 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] + workflow_dispatch: env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: + check-should-run: + name: Check if tests should run + runs-on: ubuntu-latest + outputs: + should-run: ${{ steps.check.outputs.should-run }} + steps: + - name: Check RUN_TESTS flag + id: check + run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT + build: name: build - strategy: - fail-fast: false + needs: check-should-run + if: needs.check-should-run.outputs.should-run == 'true' runs-on: devextreme-shr2 timeout-minutes: 15 @@ -73,7 +83,8 @@ jobs: test: name: ${{ matrix.ARGS.platform }} - needs: [build] + needs: [check-should-run, build] + if: needs.check-should-run.outputs.should-run == 'true' strategy: fail-fast: false matrix: diff --git a/.github/workflows/qunit_tests-additional-renovation.yml b/.github/workflows/qunit_tests-additional-renovation.yml index 3cc746ba3e4d..e5613684eabd 100644 --- a/.github/workflows/qunit_tests-additional-renovation.yml +++ b/.github/workflows/qunit_tests-additional-renovation.yml @@ -8,8 +8,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] workflow_dispatch: env: diff --git a/.github/workflows/qunit_tests-renovation.yml b/.github/workflows/qunit_tests-renovation.yml index 2b086fbd9301..2347ecf49f40 100644 --- a/.github/workflows/qunit_tests-renovation.yml +++ b/.github/workflows/qunit_tests-renovation.yml @@ -8,8 +8,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] env: NX_SKIP_NX_CACHE: true diff --git a/.github/workflows/renovation.yml b/.github/workflows/renovation.yml index e7fc115c863a..7ab9222748bb 100644 --- a/.github/workflows/renovation.yml +++ b/.github/workflows/renovation.yml @@ -8,14 +8,25 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: + check-should-run: + name: Check if tests should run + runs-on: ubuntu-latest + outputs: + should-run: ${{ steps.check.outputs.should-run }} + steps: + - name: Check RUN_TESTS flag + id: check + run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT + jest-tests: + needs: check-should-run + if: needs.check-should-run.outputs.should-run == 'true' runs-on: devextreme-shr2 timeout-minutes: 60 steps: diff --git a/.github/workflows/styles.yml b/.github/workflows/styles.yml index ca1e539d2ed9..d456cecbd81a 100644 --- a/.github/workflows/styles.yml +++ b/.github/workflows/styles.yml @@ -8,8 +8,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} diff --git a/.github/workflows/testcafe_tests.yml b/.github/workflows/testcafe_tests.yml index c0df7065ca4b..1a58d74dea87 100644 --- a/.github/workflows/testcafe_tests.yml +++ b/.github/workflows/testcafe_tests.yml @@ -8,19 +8,17 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] workflow_dispatch: env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} BUILD_TEST_INTERNAL_PACKAGE: true - RUN_TESTS: ${{ (github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'force all tests')) && 'true' || 'false' }} + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: check-should-run: name: Check if tests should run - runs-on: devextreme-shr2 + runs-on: ubuntu-latest outputs: should-run: ${{ steps.check.outputs.should-run }} steps: @@ -30,10 +28,6 @@ jobs: build: name: build - needs: check-should-run - if: needs.check-should-run.outputs.should-run == 'true' - strategy: - fail-fast: false runs-on: devextreme-shr2 timeout-minutes: 15 @@ -88,96 +82,110 @@ jobs: path: ./packages/devextreme/artifacts.zip retention-days: 1 + prepare-matrix: + name: Prepare testcafe matrix + runs-on: ubuntu-latest + needs: check-should-run + outputs: + args: ${{ steps.set.outputs.args }} + steps: + - name: Build matrix + id: set + run: | + ACCESSIBILITY='{"componentFolder":"accessibility/common","name":"accessibility (1/7)","indices":"1/7"}, + {"componentFolder":"accessibility/common","name":"accessibility (2/7)","indices":"2/7"}, + {"componentFolder":"accessibility/common","name":"accessibility (3/7)","indices":"3/7"}, + {"componentFolder":"accessibility/common","name":"accessibility (4/7)","indices":"4/7"}, + {"componentFolder":"accessibility/common","name":"accessibility (5/7)","indices":"5/7"}, + {"componentFolder":"accessibility/common","name":"accessibility (6/7)","indices":"6/7"}, + {"componentFolder":"accessibility/common","name":"accessibility (7/7)","indices":"7/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - material (1/7)","theme":"material.blue.light","indices":"1/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - material (2/7)","theme":"material.blue.light","indices":"2/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - material (3/7)","theme":"material.blue.light","indices":"3/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - material (4/7)","theme":"material.blue.light","indices":"4/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - material (5/7)","theme":"material.blue.light","indices":"5/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - material (6/7)","theme":"material.blue.light","indices":"6/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - material (7/7)","theme":"material.blue.light","indices":"7/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - fluent (1/7)","theme":"fluent.blue.light","indices":"1/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - fluent (2/7)","theme":"fluent.blue.light","indices":"2/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - fluent (3/7)","theme":"fluent.blue.light","indices":"3/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - fluent (4/7)","theme":"fluent.blue.light","indices":"4/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - fluent (5/7)","theme":"fluent.blue.light","indices":"5/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - fluent (6/7)","theme":"fluent.blue.light","indices":"6/7"}, + {"componentFolder":"accessibility/common","name":"accessibility - fluent (7/7)","theme":"fluent.blue.light","indices":"7/7"}' + REST='{"componentFolder":"common","name":"common"}, + {"componentFolder":"common","name":"common - material","theme":"material.blue.light"}, + {"componentFolder":"common","name":"common - fluent","theme":"fluent.blue.light"}, + {"componentFolder":"chat","name":"chat"}, + {"componentFolder":"chat","name":"chat - material","theme":"material.blue.light"}, + {"componentFolder":"chat","name":"chat - fluent","theme":"fluent.blue.light"}, + {"componentFolder":"treeList","name":"treeList","concurrency":1}, + {"componentFolder":"dataGrid/common","name":"dataGrid / common (1/5)","indices":"1/5"}, + {"componentFolder":"dataGrid/common","name":"dataGrid / common (2/5)","indices":"2/5"}, + {"componentFolder":"dataGrid/common","name":"dataGrid / common (3/5)","indices":"3/5"}, + {"componentFolder":"dataGrid/common","name":"dataGrid / common (4/5)","indices":"4/5"}, + {"componentFolder":"dataGrid/common","name":"dataGrid / common (5/5)","indices":"5/5"}, + {"componentFolder":"dataGrid/sticky/common","name":"dataGrid / sticky common"}, + {"componentFolder":"dataGrid/sticky/fixed","name":"dataGrid / sticky (1/3)","indices":"1/3"}, + {"componentFolder":"dataGrid/sticky/fixed","name":"dataGrid / sticky (2/3)","indices":"2/3"}, + {"componentFolder":"dataGrid/sticky/fixed","name":"dataGrid / sticky (3/3)","indices":"3/3"}, + {"componentFolder":"pivotGrid","name":"pivotGrid","concurrency":1}, + {"componentFolder":"pivotGrid","name":"pivotGrid - material","theme":"material.blue.light","concurrency":1}, + {"componentFolder":"pivotGrid","name":"pivotGrid - fluent","theme":"fluent.blue.light","concurrency":1}, + {"componentFolder":"scheduler/common","name":"scheduler / common (1/6)","indices":"1/6"}, + {"componentFolder":"scheduler/common","name":"scheduler / common (2/6)","indices":"2/6"}, + {"componentFolder":"scheduler/common","name":"scheduler / common (3/6)","indices":"3/6"}, + {"componentFolder":"scheduler/common","name":"scheduler / common (4/6)","indices":"4/6"}, + {"componentFolder":"scheduler/common","name":"scheduler / common (5/6)","indices":"5/6"}, + {"componentFolder":"scheduler/common","name":"scheduler / common (6/6)","indices":"6/6"}, + {"componentFolder":"scheduler/viewOffset/common","name":"scheduler / offset"}, + {"componentFolder":"scheduler/viewOffset/markup","name":"scheduler / offset markups"}, + {"componentFolder":"scheduler/timezones","name":"scheduler / timezones (Europe/Berlin)","timezone":"Europe/Berlin"}, + {"componentFolder":"scheduler/timezones","name":"scheduler / timezones (America/Los_Angeles)","timezone":"America/Los_Angeles"}, + {"componentFolder":"form","name":"form (1/2)","indices":"1/2"}, + {"componentFolder":"form","name":"form (2/2)","indices":"2/2"}, + {"componentFolder":"form","name":"form - material (1/2)","theme":"material.blue.light","indices":"1/2"}, + {"componentFolder":"form","name":"form - material (2/2)","theme":"material.blue.light","indices":"2/2"}, + {"componentFolder":"form","name":"form - fluent (1/2)","theme":"fluent.blue.light","indices":"1/2"}, + {"componentFolder":"form","name":"form - fluent (2/2)","theme":"fluent.blue.light","indices":"2/2"}, + {"componentFolder":"editors","name":"editors (1/3)","indices":"1/3"}, + {"componentFolder":"editors","name":"editors (2/3)","indices":"2/3"}, + {"componentFolder":"editors","name":"editors (3/3)","indices":"3/3"}, + {"componentFolder":"editors","name":"editors - material (1/3)","indices":"1/3","theme":"material.blue.light"}, + {"componentFolder":"editors","name":"editors - material (2/3)","indices":"2/3","theme":"material.blue.light"}, + {"componentFolder":"editors","name":"editors - material (3/3)","indices":"3/3","theme":"material.blue.light"}, + {"componentFolder":"editors","name":"editors - fluent (1/3)","indices":"1/3","theme":"fluent.blue.light"}, + {"componentFolder":"editors","name":"editors - fluent (2/3)","indices":"2/3","theme":"fluent.blue.light"}, + {"componentFolder":"editors","name":"editors - fluent (3/3)","indices":"3/3","theme":"fluent.blue.light"}, + {"componentFolder":"htmlEditor","name":"htmlEditor","concurrency":1}, + {"componentFolder":"htmlEditor","name":"htmlEditor - material","theme":"material.blue.light","concurrency":1}, + {"componentFolder":"htmlEditor","name":"htmlEditor - fluent","theme":"fluent.blue.light","concurrency":1}, + {"componentFolder":"navigation","name":"navigation"}, + {"componentFolder":"navigation","name":"navigation - material","theme":"material.blue.light"}, + {"componentFolder":"navigation","name":"navigation - fluent","theme":"fluent.blue.light"}, + {"componentFolder":"fileManager","name":"fileManager"}, + {"componentFolder":"fileManager","name":"fileManager - material","theme":"material.blue.light"}, + {"componentFolder":"fileManager","name":"fileManager - fluent","theme":"fluent.blue.light"}, + {"componentFolder":"filterBuilder","name":"filterBuilder"}, + {"componentFolder":"filterBuilder","name":"filterBuilder - material","theme":"material.blue.light"}, + {"componentFolder":"filterBuilder","name":"filterBuilder - fluent","theme":"fluent.blue.light"}, + {"componentFolder":"pagination","name":"pagination"}, + {"componentFolder":"pagination","name":"pagination - fluent","theme":"fluent.blue.light"}' + if [ "${{ needs.check-should-run.outputs.should-run }}" = "true" ]; then + ARGS="[$ACCESSIBILITY,$REST]" + else + ARGS="[$ACCESSIBILITY]" + fi + ARGS=$(echo "$ARGS" | tr -d '\n' | tr -s ' ') + echo "args=$ARGS" >> $GITHUB_OUTPUT + testcafe: name: ${{ matrix.ARGS.name }} - needs: [check-should-run, build] - if: needs.check-should-run.outputs.should-run == 'true' + needs: [prepare-matrix, build] strategy: fail-fast: false matrix: - ARGS: [ - { componentFolder: "accessibility/common", name: "accessibility (1/7)", indices: "1/7" }, - { componentFolder: "accessibility/common", name: "accessibility (2/7)", indices: "2/7" }, - { componentFolder: "accessibility/common", name: "accessibility (3/7)", indices: "3/7" }, - { componentFolder: "accessibility/common", name: "accessibility (4/7)", indices: "4/7" }, - { componentFolder: "accessibility/common", name: "accessibility (5/7)", indices: "5/7" }, - { componentFolder: "accessibility/common", name: "accessibility (6/7)", indices: "6/7" }, - { componentFolder: "accessibility/common", name: "accessibility (7/7)", indices: "7/7" }, - { componentFolder: "accessibility/common", name: "accessibility - material (1/7)", theme: "material.blue.light", indices: "1/7" }, - { componentFolder: "accessibility/common", name: "accessibility - material (2/7)", theme: "material.blue.light", indices: "2/7" }, - { componentFolder: "accessibility/common", name: "accessibility - material (3/7)", theme: "material.blue.light", indices: "3/7" }, - { componentFolder: "accessibility/common", name: "accessibility - material (4/7)", theme: "material.blue.light", indices: "4/7" }, - { componentFolder: "accessibility/common", name: "accessibility - material (5/7)", theme: "material.blue.light", indices: "5/7" }, - { componentFolder: "accessibility/common", name: "accessibility - material (6/7)", theme: "material.blue.light", indices: "6/7" }, - { componentFolder: "accessibility/common", name: "accessibility - material (7/7)", theme: "material.blue.light", indices: "7/7" }, - { componentFolder: "accessibility/common", name: "accessibility - fluent (1/7)", theme: "fluent.blue.light", indices: "1/7" }, - { componentFolder: "accessibility/common", name: "accessibility - fluent (2/7)", theme: "fluent.blue.light", indices: "2/7" }, - { componentFolder: "accessibility/common", name: "accessibility - fluent (3/7)", theme: "fluent.blue.light", indices: "3/7" }, - { componentFolder: "accessibility/common", name: "accessibility - fluent (4/7)", theme: "fluent.blue.light", indices: "4/7" }, - { componentFolder: "accessibility/common", name: "accessibility - fluent (5/7)", theme: "fluent.blue.light", indices: "5/7" }, - { componentFolder: "accessibility/common", name: "accessibility - fluent (6/7)", theme: "fluent.blue.light", indices: "6/7" }, - { componentFolder: "accessibility/common", name: "accessibility - fluent (7/7)", theme: "fluent.blue.light", indices: "7/7" }, - { componentFolder: "common", name: "common" }, - { componentFolder: "common", name: "common - material", theme: 'material.blue.light' }, - { componentFolder: "common", name: "common - fluent", theme: 'fluent.blue.light' }, - { componentFolder: "chat", name: "chat" }, - { componentFolder: "chat", name: "chat - material", theme: 'material.blue.light' }, - { componentFolder: "chat", name: "chat - fluent", theme: 'fluent.blue.light' }, - { componentFolder: "treeList", name: "treeList", concurrency: 1 }, - { componentFolder: "dataGrid/common", name: "dataGrid / common (1/5)", indices: "1/5" }, - { componentFolder: "dataGrid/common", name: "dataGrid / common (2/5)", indices: "2/5" }, - { componentFolder: "dataGrid/common", name: "dataGrid / common (3/5)", indices: "3/5" }, - { componentFolder: "dataGrid/common", name: "dataGrid / common (4/5)", indices: "4/5" }, - { componentFolder: "dataGrid/common", name: "dataGrid / common (5/5)", indices: "5/5" }, - { componentFolder: "dataGrid/sticky/common", name: "dataGrid / sticky common" }, - { componentFolder: "dataGrid/sticky/fixed", name: "dataGrid / sticky (1/3)", indices: "1/3" }, - { componentFolder: "dataGrid/sticky/fixed", name: "dataGrid / sticky (2/3)", indices: "2/3" }, - { componentFolder: "dataGrid/sticky/fixed", name: "dataGrid / sticky (3/3)", indices: "3/3" }, - { componentFolder: "pivotGrid", name: "pivotGrid", concurrency: 1 }, - { componentFolder: "pivotGrid", name: "pivotGrid - material", theme: 'material.blue.light', concurrency: 1 }, - { componentFolder: "pivotGrid", name: "pivotGrid - fluent", theme: 'fluent.blue.light', concurrency: 1 }, - { componentFolder: "scheduler/common", name: "scheduler / common (1/6)", indices: "1/6" }, - { componentFolder: "scheduler/common", name: "scheduler / common (2/6)", indices: "2/6" }, - { componentFolder: "scheduler/common", name: "scheduler / common (3/6)", indices: "3/6" }, - { componentFolder: "scheduler/common", name: "scheduler / common (4/6)", indices: "4/6" }, - { componentFolder: "scheduler/common", name: "scheduler / common (5/6)", indices: "5/6" }, - { componentFolder: "scheduler/common", name: "scheduler / common (6/6)", indices: "6/6" }, - { componentFolder: "scheduler/viewOffset/common", name: "scheduler / offset" }, - { componentFolder: "scheduler/viewOffset/markup", name: "scheduler / offset markups" }, - { componentFolder: "scheduler/timezones", name: "scheduler / timezones (Europe/Berlin)", timezone: "Europe/Berlin" }, - { componentFolder: "scheduler/timezones", name: "scheduler / timezones (America/Los_Angeles)", timezone: "America/Los_Angeles" }, - { componentFolder: "form", name: "form (1/2)", indices: "1/2" }, - { componentFolder: "form", name: "form (2/2)", indices: "2/2" }, - { componentFolder: "form", name: "form - material (1/2)", theme: 'material.blue.light', indices: "1/2" }, - { componentFolder: "form", name: "form - material (2/2)", theme: 'material.blue.light', indices: "2/2" }, - { componentFolder: "form", name: "form - fluent (1/2)", theme: 'fluent.blue.light', indices: "1/2" }, - { componentFolder: "form", name: "form - fluent (2/2)", theme: 'fluent.blue.light', indices: "2/2" }, - { componentFolder: "editors", name: "editors (1/3)", indices: "1/3" }, - { componentFolder: "editors", name: "editors (2/3)", indices: "2/3" }, - { componentFolder: "editors", name: "editors (3/3)", indices: "3/3" }, - { componentFolder: "editors", name: "editors - material (1/3)", indices: "1/3", theme: 'material.blue.light' }, - { componentFolder: "editors", name: "editors - material (2/3)", indices: "2/3", theme: 'material.blue.light' }, - { componentFolder: "editors", name: "editors - material (3/3)", indices: "3/3", theme: 'material.blue.light' }, - { componentFolder: "editors", name: "editors - fluent (1/3)", indices: "1/3", theme: 'fluent.blue.light' }, - { componentFolder: "editors", name: "editors - fluent (2/3)", indices: "2/3", theme: 'fluent.blue.light' }, - { componentFolder: "editors", name: "editors - fluent (3/3)", indices: "3/3", theme: 'fluent.blue.light' }, - { componentFolder: "htmlEditor", name: "htmlEditor", concurrency: 1 }, - { componentFolder: "htmlEditor", name: "htmlEditor - material", theme: 'material.blue.light', concurrency: 1 }, - { componentFolder: "htmlEditor", name: "htmlEditor - fluent", theme: 'fluent.blue.light', concurrency: 1 }, - { componentFolder: "navigation", name: "navigation" }, - { componentFolder: "navigation", name: "navigation - material", theme: 'material.blue.light' }, - { componentFolder: "navigation", name: "navigation - fluent", theme: 'fluent.blue.light' }, - { componentFolder: "fileManager", name: "fileManager" }, - { componentFolder: "fileManager", name: "fileManager - material", theme: 'material.blue.light' }, - { componentFolder: "fileManager", name: "fileManager - fluent", theme: 'fluent.blue.light' }, - { componentFolder: "filterBuilder", name: "filterBuilder" }, - { componentFolder: "filterBuilder", name: "filterBuilder - material", theme: 'material.blue.light' }, - { componentFolder: "filterBuilder", name: "filterBuilder - fluent", theme: 'fluent.blue.light' }, - { componentFolder: "pagination", name: "pagination" }, -# TODO Chrome133: skipped during chrome update -# { componentFolder: "pagination", name: "pagination - material", theme: 'material.blue.light' }, - { componentFolder: "pagination", name: "pagination - fluent", theme: 'fluent.blue.light' }, - ] + ARGS: ${{ fromJSON(needs.prepare-matrix.outputs.args) }} runs-on: devextreme-shr2 timeout-minutes: 45 diff --git a/.github/workflows/themebuilder_tests.yml b/.github/workflows/themebuilder_tests.yml index 8ebbea81ea18..31c50f9a2b6c 100644 --- a/.github/workflows/themebuilder_tests.yml +++ b/.github/workflows/themebuilder_tests.yml @@ -8,14 +8,26 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] + workflow_dispatch: env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: + check-should-run: + name: Check if tests should run + runs-on: ubuntu-latest + outputs: + should-run: ${{ steps.check.outputs.should-run }} + steps: + - name: Check RUN_TESTS flag + id: check + run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT + test: + needs: check-should-run + if: needs.check-should-run.outputs.should-run == 'true' runs-on: devextreme-shr2 timeout-minutes: 30 diff --git a/.github/workflows/ts_declarations.yml b/.github/workflows/ts_declarations.yml index 26acdcd462f3..fac02a196445 100644 --- a/.github/workflows/ts_declarations.yml +++ b/.github/workflows/ts_declarations.yml @@ -8,8 +8,6 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] jobs: check-ts-bundle: diff --git a/.github/workflows/wrapper_tests.yml b/.github/workflows/wrapper_tests.yml index 96fa388c1d47..faa731880fca 100644 --- a/.github/workflows/wrapper_tests.yml +++ b/.github/workflows/wrapper_tests.yml @@ -4,15 +4,27 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2] + workflow_dispatch: env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} BUILD_TEST_INTERNAL_PACKAGE: true + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: + check-should-run: + name: Check if tests should run + runs-on: ubuntu-latest + outputs: + should-run: ${{ steps.check.outputs.should-run }} + steps: + - name: Check RUN_TESTS flag + id: check + run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT + test: + needs: check-should-run + if: needs.check-should-run.outputs.should-run == 'true' runs-on: ubuntu-22.04 timeout-minutes: 40 diff --git a/.github/workflows/wrapper_tests_e2e.yml b/.github/workflows/wrapper_tests_e2e.yml index 10a9a1e0dea1..a8bb5e8cedea 100644 --- a/.github/workflows/wrapper_tests_e2e.yml +++ b/.github/workflows/wrapper_tests_e2e.yml @@ -8,16 +8,27 @@ on: pull_request: paths-ignore: - 'apps/**/*.md' - push: - branches: [24_2, 25_*, 26_*] workflow_dispatch: env: NX_SKIP_NX_CACHE: ${{ (github.event_name != 'pull_request' || contains( github.event.pull_request.labels.*.name, 'skip-cache')) && 'true' || 'false' }} BUILD_TEST_INTERNAL_PACKAGE: true + RUN_TESTS: ${{ (github.event_name == 'workflow_dispatch' || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'force all tests'))) && 'true' || 'false' }} jobs: + check-should-run: + name: Check if tests should run + runs-on: ubuntu-latest + outputs: + should-run: ${{ steps.check.outputs.should-run }} + steps: + - name: Check RUN_TESTS flag + id: check + run: echo "should-run=${{ env.RUN_TESTS }}" >> $GITHUB_OUTPUT + build-packages: + needs: check-should-run + if: needs.check-should-run.outputs.should-run == 'true' runs-on: devextreme-shr2 name: Build DevExtreme and Wrappers timeout-minutes: 40 @@ -76,7 +87,8 @@ jobs: retention-days: 1 test-wrappers: - needs: build-packages + needs: [check-should-run, build-packages] + if: needs.check-should-run.outputs.should-run == 'true' runs-on: devextreme-shr2 name: Test ${{ matrix.framework }} timeout-minutes: 30