Skip to content

feat: split button #940

feat: split button

feat: split button #940

Workflow file for this run

name: "Code Quality Checks"
env:
IS_CI: true
TURBO_API: "http://127.0.0.1:8585"
TURBO_TEAM: "qualcomm-ui"
TURBO_TOKEN: "turbo-cache-token"
on:
pull_request:
# Run every time a PR to origin/main is created or updated
types: [ opened, synchronize ]
branches: [ main, dev ]
workflow_dispatch:
jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
shardIndex: [ 1, 2, 3, 4 ]
shardTotal: [ 4 ]
concurrency:
group: PR Lint - ${{matrix.shardIndex}} - ${{github.head_ref}}
cancel-in-progress: true
timeout-minutes: 10
steps:
- name: clone
id: install
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- uses: ./.github/actions/init-remote-cache
with:
turborepo-remote-cache-bucket-name: ${{ secrets.TURBOREPO_REMOTE_CACHE_BUCKET_NAME }}
turborepo-remote-cache-access-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_ACCESS_KEY }}
turborepo-remote-cache-secret-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_SECRET_KEY }}
- name: build eslint plugins
run: pnpm build --filter='@qualcomm-ui/eslint-plugin-angular...' --filter='@qualcomm-ui/eslint-plugin-react...'
- name: Restore timing data
uses: actions/cache/restore@v5
with:
path: .lint-cache
key: lint-timings-v1
- name: lint
run: node --import=tsx scripts/lint/lint-shard.ts --shard=${{matrix.shardIndex}}/${{matrix.shardTotal}}
build:
runs-on: ubuntu-latest
concurrency:
group: PR Build - ${{github.head_ref}}
cancel-in-progress: true
timeout-minutes: 10
steps:
- name: checkout
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- uses: ./.github/actions/init-remote-cache
with:
turborepo-remote-cache-bucket-name: ${{ secrets.TURBOREPO_REMOTE_CACHE_BUCKET_NAME }}
turborepo-remote-cache-access-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_ACCESS_KEY }}
turborepo-remote-cache-secret-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_SECRET_KEY }}
- name: build
run: pnpm build
- name: typedoc
run: pnpm doc-gen
unit-test:
runs-on: ubuntu-latest
concurrency:
group: PR Unit Test v2 - ${{github.head_ref}}
cancel-in-progress: true
timeout-minutes: 10
steps:
- name: checkout
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- uses: ./.github/actions/init-remote-cache
with:
turborepo-remote-cache-bucket-name: ${{ secrets.TURBOREPO_REMOTE_CACHE_BUCKET_NAME }}
turborepo-remote-cache-access-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_ACCESS_KEY }}
turborepo-remote-cache-secret-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_SECRET_KEY }}
- name: build eslint plugins and test deps
run: pnpm build --filter='@qualcomm-ui/eslint-plugin-angular...' --filter='@qualcomm-ui/eslint-plugin-react...' --filter='@qualcomm-ui/utils...' --filter='@qualcomm-ui/typedoc...'
- name: unit tests
run: pnpm run test:unit:ci
react-core-tests:
runs-on: ubuntu-latest
concurrency:
group: PR React Core Tests - ${{github.head_ref}}
cancel-in-progress: true
timeout-minutes: 10
steps:
- name: checkout
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- uses: ./.github/actions/init-playwright
- uses: ./.github/actions/init-remote-cache
with:
turborepo-remote-cache-bucket-name: ${{ secrets.TURBOREPO_REMOTE_CACHE_BUCKET_NAME }}
turborepo-remote-cache-access-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_ACCESS_KEY }}
turborepo-remote-cache-secret-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_SECRET_KEY }}
- name: build dependencies
run: pnpm turbo run build --filter '@qualcomm-ui/react-core'
- name: test react-core
run: pnpm turbo run test:react-core:ci
env:
VITEST_MAX_THREADS: 1
react-tests:
runs-on: ubuntu-latest
strategy:
matrix:
shardIndex: [ 1, 2 ]
shardTotal: [ 2 ]
concurrency:
group: PR React Tests - ${{matrix.shardIndex}} - ${{github.head_ref}}
cancel-in-progress: true
timeout-minutes: 10
steps:
- name: checkout
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- uses: ./.github/actions/init-playwright
- uses: ./.github/actions/init-remote-cache
with:
turborepo-remote-cache-bucket-name: ${{ secrets.TURBOREPO_REMOTE_CACHE_BUCKET_NAME }}
turborepo-remote-cache-access-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_ACCESS_KEY }}
turborepo-remote-cache-secret-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_SECRET_KEY }}
- name: build react dependencies
run: pnpm turbo run build --filter '@qualcomm-ui/react'
- name: test react
timeout-minutes: 2
run: pnpm turbo run test:react:ci -- --shard=${{matrix.shardIndex}}/${{matrix.shardTotal}}
env:
VITEST_MAX_THREADS: 1
angular-core-tests:
runs-on: ubuntu-latest
strategy:
matrix:
shardIndex: [ 1 ]
shardTotal: [ 1 ]
concurrency:
group: PR Angular Core Tests - ${{matrix.shardIndex}} - ${{github.head_ref}}
cancel-in-progress: true
steps:
- name: checkout
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- uses: ./.github/actions/init-playwright
- uses: ./.github/actions/init-remote-cache
with:
turborepo-remote-cache-bucket-name: ${{ secrets.TURBOREPO_REMOTE_CACHE_BUCKET_NAME }}
turborepo-remote-cache-access-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_ACCESS_KEY }}
turborepo-remote-cache-secret-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_SECRET_KEY }}
- name: build angular dependencies
run: pnpm turbo run build --filter '@qualcomm-ui/angular-core'
- name: test angular components
run: pnpm turbo run test:angular-core:ci -- --shard=${{matrix.shardIndex}}/${{matrix.shardTotal}}
angular-tests:
runs-on: ubuntu-latest
strategy:
matrix:
shardIndex: [ 1, 2, 3 ]
shardTotal: [ 3 ]
concurrency:
group: PR Angular Tests - ${{matrix.shardIndex}} - ${{matrix.shardTotal}} - ${{github.head_ref}}
cancel-in-progress: true
steps:
- name: checkout
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- uses: ./.github/actions/init-playwright
- uses: ./.github/actions/init-remote-cache
with:
turborepo-remote-cache-bucket-name: ${{ secrets.TURBOREPO_REMOTE_CACHE_BUCKET_NAME }}
turborepo-remote-cache-access-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_ACCESS_KEY }}
turborepo-remote-cache-secret-key: ${{ secrets.TURBOREPO_REMOTE_CACHE_SECRET_KEY }}
- name: build angular dependencies
run: pnpm turbo run build --filter '@qualcomm-ui/angular'
- name: test angular components
run: pnpm turbo run test:angular:ci -- --shard=${{matrix.shardIndex}}/${{matrix.shardTotal}}
copyright-license-check:
runs-on: ubuntu-latest
concurrency:
group: PR copyright-license-check - ${{github.head_ref}}
cancel-in-progress: true
steps:
- name: Checkout PR head
uses: actions/checkout@v6
- uses: ./.github/actions/init-node-and-install
- name: Run copyright/license checker
run: node --import=tsx scripts/license-checker lint