Skip to content

test: Resolve Cypress Flaky fixes #4926

test: Resolve Cypress Flaky fixes

test: Resolve Cypress Flaky fixes #4926

Workflow file for this run

name: Pull Request
on: pull_request
jobs:
install:
runs-on: ubuntu-latest
outputs:
cypress-version: ${{ steps.cypress-version.outputs.version }}
steps:
- uses: actions/checkout@v3
- uses: Workday/canvas-kit-actions/install@v1
with:
node_version: 18.x
check:
runs-on: ubuntu-latest
needs: 'install'
steps:
- uses: actions/checkout@v3
- uses: Workday/canvas-kit-actions/install@v1
with:
node_version: 18.x
# Keep steps separate for Github Actions annotation matching: https://github.com/actions/setup-node/blob/83c9f7a7df54d6b57455f7c57ac414f2ae5fb8de/src/setup-node.ts#L26-L33
- name: Lint
run: yarn lint
- name: Dependency Check
run: yarn depcheck
- name: Type Check
run: yarn typecheck
- name: Unit tests
run: yarn test
build:
runs-on: ubuntu-latest
needs: 'install'
steps:
- uses: actions/checkout@v3
- uses: Workday/canvas-kit-actions/install@v1
with:
node_version: 18.x
- name: Build Storybook
run: yarn build-storybook --quiet
- name: Cache Build
id: build-cache
uses: actions/cache@v3
with:
path: docs
key: ${{ runner.os }}-build-${{ github.sha }}
visual-test:
runs-on: ubuntu-latest
needs: 'build'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Required to retrieve git history
- uses: Workday/canvas-kit-actions/install@v1
with:
node_version: 18.x
- name: Restore Build
uses: actions/cache@v3
with:
path: docs
key: ${{ runner.os }}-build-${{ github.sha }}
- uses: chromaui/action@main
with:
token: ${{ secrets.GITHUB_TOKEN }}
appCode: dlpro96xybh
storybookBuildDir: docs
exitOnceUploaded: false
exitZeroOnChanges: true
integration-test:
runs-on: ubuntu-latest
needs: ['install', 'build']
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Required to retrieve git history
- uses: Workday/canvas-kit-actions/install@v1
with:
node_version: 18.x
- name: Restore Build
uses: actions/cache@v3
with:
path: docs
key: ${{ runner.os }}-build-${{ github.sha }}
- name: Integration tests
run: yarn cypress run --component --record --parallel
env:
# Github Actions doesn't support encryption on forks
# If these keys become compromised, we will rotate and disable these features
# on forked PRs until a suitable workaround is found
CYPRESS_RECORD_KEY: 3a9347b6-36ab-4a36-823d-709f4078b148
CYPRESS_CACHE_FOLDER: .cache/cypress
verify:
runs-on: ubuntu-latest
if: always()
needs: ['check', 'integration-test', 'visual-test']
steps:
- name: Failure Test
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') # Test the result of all dependencies
run: exit 1
- name: Success
run: exit 0