feat(dismissible-tag): make tooltip position configurable #30808
Workflow file for this run
This file contains hidden or 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: ci | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
types: [opened, reopened, synchronize, ready_for_review] | |
branches: | |
- main | |
merge_group: | |
types: [checks_requested] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
dedupe: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- name: Run yarn dedupe | |
run: yarn dedupe --check | |
format: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Check formatting of project files | |
run: yarn format:diff | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Lint code | |
run: yarn lint | |
- name: Lint styles | |
run: yarn lint:styles | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
if: github.event_name != 'merge_group' | |
id: cache | |
with: | |
path: | | |
node_modules | |
*/**/node_modules | |
key: | |
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', | |
'packages/**/yarn.lock') }} | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Build project | |
run: yarn build | |
- name: Check generated styles | |
run: | | |
yarn carbon-cli check --ignore '**/@(node_modules|examples|components|react|fixtures|compat)/**' 'packages/**/*.scss' | |
- name: Run tests | |
run: yarn test --ci --collectCoverage | |
- name: Upload coverage reports to Codecov with GitHub Action | |
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3 | |
with: | |
flags: main-packages | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
web-components-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
if: github.event_name != 'merge_group' | |
id: cache | |
with: | |
path: | | |
node_modules | |
*/**/node_modules | |
key: | |
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', | |
'packages/**/yarn.lock') }} | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Build web-components project | |
run: | |
yarn lerna run build --scope='@carbon/web-components' | |
--include-dependencies | |
- name: Run tests | |
run: | | |
cd packages/web-components | |
yarn test --coverage | |
- name: Upload web-components coverage reports to Codecov | |
uses: codecov/codecov-action@18283e04ce6e62d37312384ff67231eb8fd56d24 # v5.4.3 | |
with: | |
files: ./packages/web-components/coverage/lcov.info | |
flags: web-components | |
verbose: true | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
e2e: | |
name: 'test:e2e' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
if: github.event_name != 'merge_group' | |
id: cache | |
with: | |
path: | | |
node_modules | |
*/**/node_modules | |
key: | |
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', | |
'packages/**/yarn.lock') }} | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | |
id: filter | |
with: | |
filters: | | |
e2e: | |
- 'e2e/**' | |
- 'packages/icons/**' | |
- 'packages/icons-react/**' | |
- 'packages/icons-vue/**' | |
- 'packages/pictograms/**' | |
- 'packages/pictograms-react/**' | |
- 'packages/icon-build-helpers/**' | |
- name: Build project | |
if: ${{ steps.filter.outputs.e2e == 'true' }} | |
run: yarn build | |
- name: Run e2e tests | |
if: ${{ steps.filter.outputs.e2e == 'true' }} | |
run: yarn test:e2e | |
vrt-runner: | |
strategy: | |
fail-fast: false | |
matrix: | |
shardIndex: [1, 2, 3, 4] | |
shardTotal: [4] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
if: github.event_name != 'merge_group' | |
id: cache | |
with: | |
path: | | |
node_modules | |
*/**/node_modules | |
key: | |
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', | |
'packages/**/yarn.lock') }} | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Install browsers | |
run: yarn playwright install --with-deps | |
- name: Build project | |
run: yarn build | |
- name: Build storybook | |
run: yarn workspace @carbon/react storybook:build | |
- name: Run storybook | |
id: storybook | |
run: | | |
npx serve -l 3000 packages/react/storybook-static & | |
pid=$! | |
echo "pid=$pid" >> $GITHUB_OUTPUT | |
- uses: ./actions/wait-for-it | |
with: | |
URL: 'http://localhost:3000' | |
timeout-minutes: 3 | |
- name: Run VRT | |
if: | |
${{ github.repository == 'carbon-design-system/carbon' && | |
github.event.pull_request.draft == false }} | |
env: | |
PERCY_TOKEN: c9a21a3fde4fda0a0f822d633426ab26e2ab2c1cba55221d342d4047744c8c24 | |
PERCY_PARALLEL_TOTAL: 4 | |
run: | | |
yarn percy exec --parallel -- yarn playwright test --project chromium --grep @vrt --shard="${{ matrix.shardIndex }}/${{ matrix.shardTotal }}" | |
- name: Dry run VRT on draft PRs | |
if: | |
${{ github.repository == 'carbon-design-system/carbon' && | |
github.event.pull_request.draft != false && github.base_ref != 'main' | |
}} | |
env: | |
PERCY_TOKEN: c9a21a3fde4fda0a0f822d633426ab26e2ab2c1cba55221d342d4047744c8c24 | |
PERCY_PARALLEL_TOTAL: 4 | |
run: | | |
yarn percy exec --parallel -- yarn playwright test --project chromium --grep @vrt --shard="${{ matrix.shardIndex }}/${{ matrix.shardTotal }}" --dry-run | |
- name: Stop storybook | |
run: kill ${{ steps.storybook.outputs.pid }} | |
- name: Upload blob report to GitHub Actions Artifacts | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a #4.3.6 | |
with: | |
name: playwright-vrt-blob-report-${{ matrix.shardIndex }} | |
path: blob-report | |
retention-days: 1 | |
vrt: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: vrt-runner | |
steps: | |
- name: Check VRT Runner job status | |
if: ${{ needs.vrt-runner.result != 'success' }} | |
run: exit 1 | |
avt-runner: | |
strategy: | |
fail-fast: false | |
matrix: | |
shardIndex: [1, 2, 3, 4] | |
shardTotal: [4] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
if: github.event_name != 'merge_group' | |
id: cache | |
with: | |
path: | | |
node_modules | |
*/**/node_modules | |
key: | |
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', | |
'packages/**/yarn.lock') }} | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Install browsers | |
run: yarn playwright install --with-deps | |
- name: Build project | |
run: yarn build | |
- name: Build storybook | |
run: yarn workspace @carbon/react storybook:build | |
- name: Run storybook | |
id: storybook | |
run: | | |
npx serve -l 3000 packages/react/storybook-static & | |
pid=$! | |
echo "pid=$pid" >> $GITHUB_OUTPUT | |
- uses: ./actions/wait-for-it | |
with: | |
URL: 'http://localhost:3000' | |
timeout-minutes: 3 | |
- name: Run AVT | |
if: github.repository == 'carbon-design-system/carbon' | |
run: | | |
yarn playwright test --project chromium --grep @avt --shard="${{ matrix.shardIndex }}/${{ matrix.shardTotal }}" | |
- name: Stop storybook | |
run: kill ${{ steps.storybook.outputs.pid }} | |
- name: Upload blob report to GitHub Actions Artifacts | |
if: ${{ !cancelled() }} | |
uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a #4.3.6 | |
with: | |
name: playwright-avt-blob-report-${{ matrix.shardIndex }} | |
path: blob-report | |
retention-days: 1 | |
avt: | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
needs: avt-runner | |
steps: | |
- name: Check AVT Runner job status | |
if: ${{ needs.avt-runner.result != 'success' }} | |
run: exit 1 | |
merge-playwright-reports: | |
# Merge reports after *-runner jobs, even if some shards have failed | |
if: | |
${{ github.repository == 'carbon-design-system/carbon' && !cancelled() }} | |
needs: [vrt-runner, avt-runner] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
if: github.event_name != 'merge_group' | |
id: cache | |
with: | |
path: | | |
node_modules | |
*/**/node_modules | |
key: | |
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', | |
'packages/**/yarn.lock') }} | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Download vrt blob reports from GitHub Actions Artifacts | |
uses: actions/download-artifact@v5 | |
with: | |
path: all-playwright-vrt-blob-reports | |
pattern: playwright-vrt-blob-report-* | |
merge-multiple: true | |
- name: Merge vrt reports into HTML Report | |
run: | |
npx playwright merge-reports --reporter html | |
./all-playwright-vrt-blob-reports | |
- name: Upload vrt HTML report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: html-playwright-vrt-report--attempt-${{ github.run_attempt }} | |
path: playwright-vrt-report | |
retention-days: 14 | |
- name: Download avt blob reports from GitHub Actions Artifacts | |
uses: actions/download-artifact@v5 | |
with: | |
path: all-playwright-avt-blob-reports | |
pattern: playwright-avt-blob-report-* | |
merge-multiple: true | |
- name: Merge avt reports into HTML Report | |
run: | |
npx playwright merge-reports --reporter html | |
./all-playwright-avt-blob-reports | |
- name: Upload avt HTML report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: html-playwright-avt-report--attempt-${{ github.run_attempt }} | |
path: playwright-avt-report | |
retention-days: 14 | |
chromatic-react: | |
if: | |
${{ github.repository == 'carbon-design-system/carbon' && | |
github.event.pull_request.draft == false }} | |
runs-on: ubuntu-latest | |
outputs: | |
buildUrl: ${{ steps.chromatic.outputs.buildUrl }} | |
storybookUrl: ${{ steps.chromatic.outputs.storybookUrl }} | |
steps: | |
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 | |
with: | |
fetch-depth: 0 | |
# π Tells the checkout which commit hash to reference | |
# https://www.chromatic.com/docs/github-actions/#recommended-configuration-for-build-events | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Use Node.js version from .nvmrc | |
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 | |
with: | |
node-version-file: '.nvmrc' | |
- uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4 | |
if: github.event_name != 'merge_group' | |
id: cache | |
with: | |
path: | | |
node_modules | |
*/**/node_modules | |
key: | |
${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', | |
'packages/**/yarn.lock') }} | |
- name: Install dependencies | |
env: | |
YARN_ENABLE_HARDENED_MODE: 0 | |
run: yarn install --immutable --immutable-cache | |
- name: Build project | |
run: yarn build | |
- name: Build storybook | |
run: yarn workspace @carbon/react storybook:build --stats-json | |
- id: chromatic | |
name: Run Chromatic | |
uses: chromaui/action@58d9ffb36c90c97a02d061544ecc849cc4a242a9 # v13.1.3 | |
with: | |
# π Token is intentionally plaintext | |
# https://www.chromatic.com/docs/github-actions/#run-chromatic-on-external-forks-of-open-source-projects | |
projectToken: 6q6rgoheqk2 | |
workingDir: packages/react | |
buildScriptName: storybook:build | |
zip: true # Runs Chromatic with the option to compress the build output | |
autoAcceptChanges: 'main' # Option to accept all changes on main | |
# π Add debug: true and print dependency trace for changed files to help with debugging: | |
traceChanged: 'expanded' | |
debug: true | |
onlyChanged: true # π Required option to enable TurboSnap | |
externals: | | |
packages/(colors|elements|feature-flags|grid|icons|icons-react|layout|motion|pictograms|pictograms-react|styles|themes|type|utilities|utilities-react)/** | |
*.sass | |
untraced: | | |
config/** | |
env: | |
# π Set to the PR branch if it's a PR; otherwise, falls back to the pushed branch name | |
CHROMATIC_BRANCH: | |
${{ github.event.pull_request.head.ref || github.ref_name }} | |
# π Set to the PR head commit if it's a PR; otherwise to the ref (which typically resolves to the latest commit SHA) | |
CHROMATIC_SHA: ${{ github.event.pull_request.head.sha || github.ref }} | |
# π Makes sure this is always set to the corect owner/repo | |
CHROMATIC_SLUG: ${{ github.repository }} | |
# This takes the chromatic storybook url and pipes it into a github deployment | |
# environment so that PRs will have the deploy preview listed in both the | |
# PR timeline and the 'branch deployment' section at the bottom above the | |
# status checks. This avoids noisy/large comments for deploy previews. | |
react-storybook-preview: | |
runs-on: ubuntu-latest | |
needs: chromatic-react | |
environment: | |
name: '@carbon/react storybook preview' | |
url: ${{ needs.chromatic-react.outputs.storybookUrl }} | |
steps: | |
- name: Generate job summary | |
env: | |
buildUrl: ${{ needs.chromatic-react.outputs.buildUrl }} | |
storybookUrl: ${{ needs.chromatic-react.outputs.storybookUrl }} | |
run: | | |
echo "### @carbon/react storybook deploy preview :rocket:" >> $GITHUB_STEP_SUMMARY | |
echo "" >> $GITHUB_STEP_SUMMARY # this is a blank line | |
echo "- Storybook deploy preview: ${{ env.storybookUrl }}" >> $GITHUB_STEP_SUMMARY | |
echo "- Commit: ${{ github.event.pull_request.head.sha }}" >> $GITHUB_STEP_SUMMARY | |
echo "- Chromatic build URL: ${{ env.buildUrl }}" >> $GITHUB_STEP_SUMMARY |