Merge pull request #3896 from carbon-design-system/fix-support-max-da… #12925
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: [push, pull_request] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
react-jest-test: | |
name: React Jest test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
filters: | | |
react: | |
- 'packages/react/**' | |
- name: Increase watchers | |
run: echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
node-version: '16.x' | |
- name: Cache dependencies | |
uses: actions/cache@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
path: | | |
node_modules | |
*/*/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
if: steps.changes.outputs.react == 'true' | |
run: | | |
yarn --frozen-lockfile | |
yarn lerna run --stream postinstall | |
yarn lerna link | |
- name: Run Jest tests, collect coverage | |
if: steps.changes.outputs.react == 'true' | |
run: | | |
cd packages/react | |
yarn test:ci --silent | |
- name: Archive coverage artifacts | |
if: ${{ success() }} && steps.changes.outputs.react == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: jest-coverage | |
path: packages/react/jest/coverage/coverage-final.json | |
react-cypress-test: | |
name: React Cypress test | |
runs-on: ubuntu-latest | |
container: | |
image: cypress/browsers:node16.14.0-slim-chrome99-ff97 | |
options: --privileged | |
steps: | |
- name: Upgrade git | |
run: | | |
echo deb "http://archive.debian.org/debian buster-backports main" >> /etc/apt/sources.list | |
apt-get update | |
apt-get install -y git/buster-backports | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
filters: | | |
react: | |
- 'packages/react/**' | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
node-version: '16.x' | |
- name: Install dependencies | |
if: steps.changes.outputs.react == 'true' | |
run: | | |
yarn --frozen-lockfile | |
yarn lerna run --stream postinstall | |
yarn lerna link | |
- name: Cache dependencies | |
uses: actions/cache@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
path: | | |
node_modules | |
*/*/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- name: Cache Cypress binary | |
uses: actions/cache@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
path: ~/.cache/Cypress | |
key: cypress-${{ runner.os }}-cypress-${{ hashFiles('**/yarn.lock') }} | |
- name: Run Cypress tests, collect coverage | |
if: steps.changes.outputs.react == 'true' | |
run: | | |
cd packages/react | |
yarn test:e2e:ci | |
env: | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
HEIGHT: 900 | |
WIDTH: 1680 | |
- name: Archive visual diff report | |
if: ${{ failure() }} && steps.changes.outputs.react == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: visual-diff-report | |
path: | | |
packages/react/cypress-visual-report | |
packages/react/cypress-visual-screenshots | |
- name: Archive coverage artifacts | |
if: ${{ success() }} && steps.changes.outputs.react == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cypress-coverage | |
path: packages/react/cypress/coverage/coverage-final.json | |
combine-reports: | |
name: Combine Coverage Reports | |
runs-on: ubuntu-latest | |
needs: [react-cypress-test, react-jest-test] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
filters: | | |
react: | |
- 'packages/react/**' | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
node-version: '16.x' | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
name: cypress-coverage | |
path: ~/work/carbon-addons-iot-react/carbon-addons-iot-react/packages/react/cypress/coverage/ | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v4 | |
if: steps.changes.outputs.react == 'true' | |
with: | |
name: jest-coverage | |
path: ~/work/carbon-addons-iot-react/carbon-addons-iot-react/packages/react/jest/coverage/ | |
- name: Change file paths for cypress coverage report | |
if: steps.changes.outputs.react == 'true' | |
run: | | |
cd packages/react/cypress/coverage | |
pwd | |
node ../../../../scripts/change-paths.js | |
- name: Copy, combine, and report coverage | |
if: steps.changes.outputs.react == 'true' | |
run: | | |
cd packages/react | |
yarn reports | |
- name: Coveralls | |
uses: coverallsapp/github-action@master | |
if: steps.changes.outputs.react == 'true' | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: './packages/react/coverage/lcov.info' | |
base-path: 'packages/react' | |
test-angular: | |
name: Test Angular | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- uses: dorny/paths-filter@v3 | |
id: changes | |
with: | |
filters: | | |
angular: | |
- 'packages/angular/**' | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
if: steps.changes.outputs.angular == 'true' | |
with: | |
node-version: '16.x' | |
- name: Cache dependencies | |
uses: actions/cache@v4 | |
if: steps.changes.outputs.angular == 'true' | |
with: | |
path: | | |
node_modules | |
*/*/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
if: steps.changes.outputs.angular == 'true' | |
run: | | |
yarn --frozen-lockfile | |
yarn lerna run --stream postinstall | |
yarn lerna link | |
- name: Run tests, collect coverage | |
if: steps.changes.outputs.angular == 'true' | |
run: | | |
cd packages/angular | |
yarn test:ci |