Skip to content

Merge pull request #3170 from mi6/pagination-bar-test-fix #1235

Merge pull request #3170 from mi6/pagination-bar-test-fix

Merge pull request #3170 from mi6/pagination-bar-test-fix #1235

name: Develop
permissions: read-all
on:
push:
branches:
- develop
- v3.0.0/develop
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check-updates:
name: "Check package updates"
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
core: ${{ steps.filter.outputs.core }}
canary: ${{ steps.filter.outputs.canary }}
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 #v3.0.2
id: filter
with:
filters: |
core:
- './packages/web-components/**'
- './packages/react/**'
canary:
- './packages/canary-web-components/**'
- './packages/canary-react/**'
ic-ui-kit-static-analysis-tests:
needs: [check-updates]
name: "Static analysis tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 #4.0.2
with:
node-version: 20
- name: Install dependencies
run: |
npm ci
npm run bootstrap -- -- --ci
- name: Build core components
if: ${{ needs.check-updates.outputs.canary == 'false' }}
run: npm run build
- name: Build all components
if: ${{ needs.check-updates.outputs.canary == 'true' }}
run: |
npm run build:all
- name: Lint commit messages
run: |
COMMIT_MESSAGE=$(git log -1 --pretty=format:"%s")
echo "$COMMIT_MESSAGE" | npx commitlint
- name: Lint
run: npm run lint
- name: Lint grammar
run: npm run lint:spelling
- name: Prettier
run: npm run prettier
- name: Audit
run: npm run audit:bypass-expiry
- name: A11y core tests
if: ${{ needs.check-updates.outputs.core == 'true' }}
run: npm run test-a11y:ci
- name: A11y canary tests
if: ${{ needs.check-updates.outputs.canary == 'true' }}
run: npm run test-a11y:ci:canary
- name: Unit Component tests
run: npm run test:coverage-ci
ic-ui-kit-e2e-tests:
needs: [check-updates]
name: "E2E tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 #4.0.2
with:
node-version: 20
- name: Install dependencies
run: |
npm ci
npm run bootstrap -- -- --ci
- name: E2E core tests
if: ${{ needs.check-updates.outputs.core == 'true' }}
id: core_e2e_tests
run: npm run test-e2e
- name: Build core components
if: ${{ steps.core_e2e_tests.outcome == 'skipped' && needs.check-updates.outputs.canary == 'true' }}
run: npm run build
- name: E2E canary tests
if: ${{ needs.check-updates.outputs.canary == 'true' }}
run: npm run test-e2e:canary
ic-ui-kit-cypress-tests:
needs: [check-updates]
name: "Cypress tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 #4.0.2
with:
node-version: 20
- uses: browser-actions/setup-chrome@97349de5c98094d4fc9412f31c524d7697115ad8 #v1.5.0
- name: Install dependencies
run: |
google-chrome --version
npm ci
npm run bootstrap -- -- --ci
- name: Core Cypress tests
if: ${{ needs.check-updates.outputs.core == 'true' }}
id: core_cypress_tests
run: npm run test-cypress:ci
- name: Canary Cypress tests
if: ${{ needs.check-updates.outputs.canary == 'true' }}
id: canary_cypress_tests
run: npm run test-cypress:ci:canary
- name: Cypress performance tests
if: ${{ needs.check-updates.outputs.core == 'true' }}
id: core_cypress_performance_tests
run: npm run test-cypress-perf:ci
ic-ui-kit-deploy-core:
needs:
[
ic-ui-kit-static-analysis-tests,
ic-ui-kit-e2e-tests,
check-updates,
ic-ui-kit-cypress-tests,
]
name: "Deploy QA Storybook"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 #4.0.2
with:
node-version: 20
- name: Install dependencies
run: |
npm ci
npm run bootstrap -- -- --ci
- name: Build core components
if: ${{ needs.check-updates.outputs.canary == 'false' }}
run: |
npm run build
- name: Build all components
if: ${{ needs.check-updates.outputs.canary == 'true' }}
run: |
npm run build:all
- name: Build web-components and react storybook
if: ${{ needs.check-updates.outputs.core == 'true' }}
run: |
npm run build-storybook:web-components
npm run build-storybook:react
- name: Build canary web-components and canary react storybook
if: ${{ needs.check-updates.outputs.canary == 'true' }}
run: |
npm run build-storybook:canary-web-components
npm run build-storybook:canary-react
- name: Deploy web components storybook
if: ${{ needs.check-updates.outputs.core == 'true' }}
uses: JamesIves/github-pages-deploy-action@65b5dfd4f5bcd3a7403bbc2959c144256167464e #v4.5.0
with:
folder: ./packages/web-components/storybook-static
target-folder: ./branches/${{ github.ref_name }}/web-components
- name: Deploy react storybook
if: ${{ needs.check-updates.outputs.core == 'true' }}
uses: JamesIves/github-pages-deploy-action@65b5dfd4f5bcd3a7403bbc2959c144256167464e #v4.5.0
with:
folder: ./packages/react/storybook-static
target-folder: ./branches/${{ github.ref_name }}/react
- name: Deploy canary web components storybook
if: ${{ needs.check-updates.outputs.canary == 'true' }}
uses: JamesIves/github-pages-deploy-action@65b5dfd4f5bcd3a7403bbc2959c144256167464e #v4.5.0
with:
folder: ./packages/canary-web-components/storybook-static
target-folder: ./branches/canary/${{ github.ref_name }}/web-components
- name: Deploy canary react storybook
if: ${{ needs.check-updates.outputs.canary == 'true' }}
uses: JamesIves/github-pages-deploy-action@65b5dfd4f5bcd3a7403bbc2959c144256167464e #v4.5.0
with:
folder: ./packages/canary-react/storybook-static
target-folder: ./branches/canary/${{ github.ref_name }}/react