Skip to content

Update testcafe to 3.7.0 to fix chrome issue. #2725

Update testcafe to 3.7.0 to fix chrome issue.

Update testcafe to 3.7.0 to fix chrome issue. #2725

Workflow file for this run

name: Alloy Dev
on:
pull_request:
workflow_dispatch:
env:
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
SAUCE_JOB: "Alloy Dev Workflow"
SAUCE_CAPABILITIES_OVERRIDES_PATH: "sauceLabsCapabilities.json"
EDGE_BASE_PATH: ee-pre-prd
ALLOY_ENV: int
SAUCE_TUNNEL_ID: github-action-tunnel
jobs:
linting:
name: "Linting files"
runs-on: ubuntu-latest
steps:
- name: Set up Node.js version
uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: npm-cache
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}-${{ secrets.NPM_CACHE_VERSION }} # increment NPM_CACHE_VERSION secret to force cache reset
- name: Install dependencies
if: steps.npm-cache.outputs.cache-hit != 'true'
run: npm ci
- name: Linting
run: npm run lint
unit-test:
name: "Unit Test"
runs-on: ubuntu-latest
steps:
- name: Set up Node.js version
uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: npm-cache
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}-${{ secrets.NPM_CACHE_VERSION }} # increment NPM_CACHE_VERSION secret to force cache reset
- name: Install dependencies
if: steps.npm-cache.outputs.cache-hit != 'true'
run: npm ci
- name: Build
run: npm run test:functional:build:int
- uses: saucelabs/sauce-connect-action@v2
with:
username: ${{ secrets.SAUCE_USERNAME }}
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
- name: Run Unit Test
run: npx karma start karma.saucelabs.conf.cjs --single-run
env:
BUILD_NUMBER: $GITHUB_RUN_NUMBER
BUILD_ID: $GITHUB_RUN_ID
JOB_NUMBER: $GITHUB_JOB
alloy-int-e2e:
name: "Dev Functional Test - TestCafe"
runs-on: ubuntu-latest
needs: unit-test
timeout-minutes: 60
steps:
- name: Set up Node.js version
uses: actions/setup-node@v4
with:
node-version: 22
- uses: actions/checkout@v4
- name: Clear cache
uses: actions/cache@v4
id: npm-cache
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}-${{ secrets.NPM_CACHE_VERSION }}
- name: Store Alloy version into env
uses: nyaa8/package-version@v1
- name: Install dependencies
if: steps.npm-cache.outputs.cache-hit != 'true'
run: npm ci
- name: Build
run: npm run test:functional:build:int
env:
ALLOY_PROD_VERSION: ${{ env.PACKAGE_VERSION }}
- name: Start Sauce Connect Tunnel
uses: saucelabs/[email protected]
env:
GITHUB_TOKEN: ${{ github.token }}
with:
username: ${{ secrets.SAUCE_USERNAME }}
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
tunnelIdentifier: ${{ env.SAUCE_TUNNEL_ID }}
- name: Run TestCafe Tests
run: |
npx testcafe "saucelabs:Safari@latest:macOS 13,saucelabs:Firefox@latest:Windows 11,saucelabs:Chrome@latest:Windows 11" \
test/functional/specs/**/*.js \
--reporter spec,saucelabs \
--skip-js-errors \
--disable-page-caching \
--page-load-timeout 5000 \
--speed 1 \
-e ALLOY_PROD_VERSION=${{ env.PACKAGE_VERSION }} \
-e NPM_PACKAGE_VERSION=${{ env.PACKAGE_VERSION }} \
-e ALLOY_ENV=int \
-e EDGE_BASE_PATH=ee-pre-prd
env:
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
SAUCE_TUNNEL_ID: ${{ env.SAUCE_TUNNEL_ID }}
- name: Handle Test Failures
if: failure()
uses: actions/github-script@v7
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |
const handleTestFailures = require('./.github/scripts/handle-test-failures.js')
await handleTestFailures({ github, context })