Skip to content

[Snyk] Security upgrade ng-packagr from 12.2.7 to 18.0.0 #9

[Snyk] Security upgrade ng-packagr from 12.2.7 to 18.0.0

[Snyk] Security upgrade ng-packagr from 12.2.7 to 18.0.0 #9

name: TestCafe tests
concurrency:
group: wf-${{github.event.pull_request.number || github.sha}}-${{github.workflow}}
cancel-in-progress: true
on:
pull_request:
push:
branches: [22_2]
jobs:
build:
name: build-${{ matrix.ARGS.name }}
strategy:
fail-fast: false
matrix:
ARGS: [
{ name: "wip-renovation", inProgressRenovation: true },
{ name: "default" },
]
runs-on: devextreme-shr2
timeout-minutes: 15
steps:
- name: Get sources
uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '15'
- name: Restore npm cache
uses: actions/cache@v3
with:
path: ./node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-modules
- name: Run npm install
run: npm install --no-audit --no-fund
- name: Build
run: BUILD_INPROGRESS_RENOVATION="${{ matrix.ARGS.inProgressRenovation == true }}" npm run build:dev
- name: Zip artifacts
run: |
7z a -tzip -mx3 -mmt2 artifacts.zip artifacts scss/bundles testing/tests/Renovation/widgets.json
- name: Upload build artifacts
uses: actions/upload-artifact@v3
with:
name: devextreme-artifacts-renovation-${{ matrix.ARGS.inProgressRenovation == true }}
path: artifacts.zip
retention-days: 1
testcafe:
name: ${{ matrix.ARGS.name }}
needs: [build]
strategy:
fail-fast: false
matrix:
ARGS: [
{ componentFolder: "treeList", name: "treeList", quarantineMode: true },
{ componentFolder: "dataGrid", name: "dataGrid (1/3)", quarantineMode: true, indices: "1/3" },
{ componentFolder: "dataGrid", name: "dataGrid (2/3)", quarantineMode: true, indices: "2/3" },
{ componentFolder: "dataGrid", name: "dataGrid (3/3)", quarantineMode: true, indices: "3/3" },
{ componentFolder: "scheduler", name: "scheduler (1/5)", quarantineMode: true, indices: "1/5" },
{ componentFolder: "scheduler", name: "scheduler (2/5)", quarantineMode: true, indices: "2/5" },
{ componentFolder: "scheduler", name: "scheduler (3/5)", quarantineMode: true, indices: "3/5" },
{ componentFolder: "scheduler", name: "scheduler (4/5)", quarantineMode: true, indices: "4/5" },
{ componentFolder: "scheduler", name: "scheduler (5/5)", quarantineMode: true, indices: "5/5" },
{ componentFolder: "editors", name: "editors (1/3)", quarantineMode: false, indices: "1/3" },
{ componentFolder: "editors", name: "editors (2/3)", quarantineMode: false, indices: "2/3" },
{ componentFolder: "editors", name: "editors (3/3)", quarantineMode: false, indices: "3/3" },
{ componentFolder: "htmlEditor", name: "htmlEditor", quarantineMode: false },
{ componentFolder: "navigation", name: "navigation (1/4)", quarantineMode: false, indices: "1/4" },
{ componentFolder: "navigation", name: "navigation (2/4)", quarantineMode: false, indices: "2/4" },
{ componentFolder: "navigation", name: "navigation (3/4)", quarantineMode: false, indices: "3/4" },
{ componentFolder: "navigation", name: "navigation (4/4)", quarantineMode: false, indices: "4/4" },
{ componentFolder: "renovation", name: "renovation (jquery) (1/4)", platform: "jquery", quarantineMode: false, inProgressRenovation: true, indices: "1/4" },
{ componentFolder: "renovation", name: "renovation (jquery) (2/4)", platform: "jquery", quarantineMode: false, inProgressRenovation: true, indices: "2/4" },
{ componentFolder: "renovation", name: "renovation (jquery) (3/4)", platform: "jquery", quarantineMode: false, inProgressRenovation: true, indices: "3/4" },
{ componentFolder: "renovation", name: "renovation (jquery) (4/4)", platform: "jquery", quarantineMode: false, inProgressRenovation: true, indices: "4/4" },
{ componentFolder: "renovation", name: "renovation (react) (1/4)", platform: "react", quarantineMode: false, indices: "1/4" },
{ componentFolder: "renovation", name: "renovation (react) (2/4)", platform: "react", quarantineMode: false, indices: "2/4" },
{ componentFolder: "renovation", name: "renovation (react) (3/4)", platform: "react", quarantineMode: false, indices: "3/4" },
{ componentFolder: "renovation", name: "renovation (react) (4/4)", platform: "react", quarantineMode: false, indices: "4/4" },
]
runs-on: devextreme-shr2
timeout-minutes: 90
steps:
- name: Get sources
uses: actions/checkout@v3
- uses: ./.github/actions/pin-browsers
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: '15'
- name: Restore npm cache
uses: actions/cache@v3
with:
path: ./node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-node-modules
- name: Run npm install
run: npm install --no-audit --no-fund
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: devextreme-artifacts-renovation-${{ matrix.ARGS.inProgressRenovation == true }}
- name: Prepare localization
run: npx gulp localization
- name: Unpack artifacts
run: 7z x artifacts.zip -aoa
- name: Prepare renovation playground
if: matrix.ARGS.componentFolder == 'renovation'
run: |
pushd testing/renovation
npm install --no-audit --no-fund --legacy-peer-deps
popd
npm run build:react
npx gulp build-renovation-testing
- name: Run TestCafe tests
run: |
[ "${{ matrix.ARGS.inProgressRenovation }}" == "true" ] && META_RENOVATION="--meta renovation"
[ "${{ matrix.ARGS.indices }}" != "" ] && INDICES="--indices ${{ matrix.ARGS.indices }}"
[ "${{ matrix.ARGS.platform }}" != "" ] && PLATFORM="--platform ${{ matrix.ARGS.platform }}"
export TESTCAFE_DASHBOARD_LAYOUT_TESTING_ENABLED=true
export TESTCAFE_DASHBOARD_DEVEXTREME_TOKEN=eyJwcm9qZWN0SWQiOiI3MDEyMTgyZC1iMzliLTQyYWMtYjRlZC02YWY2MWMyZmQyNzgiLCJ0b2tlblNlY3JldCI6ImtUODN0QjU1dFdyeWJva2VsdlpDb051R3pzOFZOYzVuaDI4dXNFb3pFd2hPOUZDZlRVaXh5OXBvVC8wS3hDZFAwd05SKzlmVkk0WWh3dXl2ZkhtZDFudTE0MHJqdEUxVnByTlI4Z1RTRHJwZlRPN1dZZXNEUnovUDRTOFF1L3NPTWNjSXpzWno1Y0ZIY2xVSFZKTVVTRVIxVGtaRlgwZTlhUU5tRTBaY1FPTmVkenovREFseGQ4YVoxZnNkN2dSd2VFNjBhSjNueG1vOHNGbGJwazVsYmlvN2JoVy9VTnBvWSs1Q0tFcVFvQ0JSTHJFSlUybUNxNkdGbmhtbmxUTW9SRXpjWDBjUlMwMk41NWlTakNMMXRxdlpMajc4MnB6ZnFrRWo1d29UT0dLY3V1bThRaXE2L1FnaWR2MFV0VWFTaGZvVW9sazhTWFlXNGtxWVNSalR1QT09In0=
export TESTCAFE_DASHBOARD_DEVEXTREME_URL=https://devextreme.resolve.sh
export TESTCAFE_DASHBOARD_BUILD_ID=${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}
all_args="--concurrency 2 --browsers=chrome:devextreme-shr2 --componentFolder ${{ matrix.ARGS.componentFolder }} --quarantineMode ${{ matrix.ARGS.quarantineMode}} $META_RENOVATION $INDICES $PLATFORM"
echo "$all_args"
npm run test-testcafe -- $all_args
- name: Copy compared screenshot artifacts
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: compared-screenshots
path: ${{ github.workspace }}/testing/testcafe/artifacts/compared-screenshots/**/*
if-no-files-found: ignore
- name: Copy failed test artifacts
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: failed-tests
path: ${{ github.workspace }}/testing/testcafe/artifacts/failedtests/**/*
if-no-files-found: ignore
notify:
runs-on: devextreme-shr2
name: Send notifications
needs: [build, testcafe]
if: always() && contains(needs.*.result, 'failure')
steps:
- uses: actions/checkout@v3
- uses: DevExpress/github-actions/send-teams-notification@main
with:
hook_url: ${{secrets.TEAMS_ALERT}}
bearer_token: ${{secrets.GITHUB_TOKEN}}
specific_repo: DevExpress/DevExtreme
specific_branch: 22_2