chore(deps): bump focus-trap from 6.7.1 to 7.6.2 #927
Workflow file for this run
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: frontend | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
jobs: | |
files-changed: | |
name: detect what files changed | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 3 | |
# Map a step output to a job output | |
outputs: | |
eslint_config: ${{ steps.changes.outputs.eslint_config }} | |
frontend: ${{ steps.changes.outputs.frontend }} | |
frontend_components_modified_lintable: ${{ steps.changes.outputs.frontend_components_modified_lintable }} | |
frontend_components_modified_lintable_files: ${{ steps.changes.outputs.frontend_components_modified_lintable_files }} | |
frontend_modified_lintable_files: ${{ steps.changes.outputs.frontend_modified_lintable_files }} | |
yarn_lockfile: ${{ steps.changes.outputs.yarn_lockfile }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Check for frontend file changes | |
uses: getsentry/paths-filter@v2 | |
id: changes | |
with: | |
token: ${{ github.token }} | |
filters: .github/file-filters.yml | |
list-files: shell | |
typescript-and-lint: | |
needs: files-changed | |
name: typescript and lint | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Internal github app token | |
id: token | |
uses: getsentry/action-github-app-token@v1 | |
continue-on-error: true | |
with: | |
app_id: ${{ secrets.SENTRY_INTERNAL_APP_ID }} | |
private_key: ${{ secrets.SENTRY_INTERNAL_APP_PRIVATE_KEY }} | |
- name: Check for frontend file changes | |
uses: getsentry/paths-filter@master | |
id: changes | |
with: | |
list-files: shell | |
token: ${{ github.token }} | |
filters: .github/file-filters.yml | |
- uses: volta-cli/action@v1 | |
if: needs.files-changed.outputs.frontend == 'true' | |
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for example | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
if: needs.files-changed.outputs.frontend == 'true' | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- uses: actions/cache@v1 # We are explicitly using v1 due to perf reasons | |
if: needs.files-changed.outputs.frontend == 'true' | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-v2-yarn-${{ hashFiles('yarn.lock', 'api-docs/yarn.lock') }} | |
- name: Install dependencies | |
id: dependencies | |
if: needs.files-changed.outputs.frontend == 'true' | |
run: yarn install --frozen-lockfile | |
# Setup custom tsc matcher, see https://github.com/actions/setup-node/issues/97 | |
- name: setup matchers | |
if: needs.files-changed.outputs.frontend == 'true' | |
run: | | |
echo "::remove-matcher owner=masters::" | |
echo "::add-matcher::.github/tsc.json" | |
echo "::add-matcher::.github/eslint-stylish.json" | |
- name: eslint logic | |
id: eslint | |
if: needs.files-changed.outputs.frontend == 'true' && (github.ref == 'refs/heads/master' || needs.files-changed.outputs.eslint_config == 'true' || needs.files-changed.outputs.yarn_lockfile == 'true') | |
run: echo "::set-output name=all-files::true" | |
# Lint entire frontend if: | |
# - this is on main branch | |
# - eslint configuration in repo has changed | |
# - yarn lockfile has changed (i.e. we bump our eslint config) | |
- name: eslint | |
if: steps.eslint.outputs.all-files == 'true' | |
env: | |
# Run relax config on main branch (and stricter config for changed files) | |
SENTRY_ESLINT_RELAXED: 1 | |
run: | | |
yarn lint | |
yarn lint:css | |
# Otherwise... only lint modified files | |
# Note `eslint --fix` will not fail when it auto fixes files | |
- name: eslint (changed files only) | |
if: needs.files-changed.outputs.frontend == 'true' && steps.eslint.outputs.all-files != 'true' | |
run: | | |
yarn eslint --fix ${{ needs.files-changed.outputs.frontend_modified_lintable_files }} | |
- name: stylelint (changed files only) | |
if: github.ref != 'refs/heads/master' && needs.files-changed.outputs.frontend_components_modified_lintable == 'true' | |
run: | | |
yarn stylelint ${{ needs.files-changed.outputs.frontend_components_modified_lintable_files }} | |
# Check (and error) for dirty working tree for forks | |
# Reason being we need a different token to auto commit changes and | |
# forks do not have access to said token | |
- name: Check for dirty git working tree (forks) | |
if: steps.token.outcome != 'success' && github.ref != 'refs/heads/master' && needs.files-changed.outputs.frontend == 'true' | |
run: | | |
git diff --quiet || (echo '::error ::lint produced file changes, run linter locally and try again' && exit 1) | |
# If working tree is dirty, commit and update if we have a token | |
- name: Commit any eslint fixed files | |
if: steps.token.outcome == 'success' && github.ref != 'refs/heads/master' && needs.files-changed.outputs.frontend == 'true' | |
uses: getsentry/action-github-commit@main | |
with: | |
github-token: ${{ steps.token.outputs.token }} | |
- name: tsc | |
id: tsc | |
if: steps.dependencies.outcome == 'success' && needs.files-changed.outputs.frontend == 'true' | |
run: | | |
set -o pipefail | |
yarn tsc -p config/tsconfig.build.json --diagnostics --generateTrace /tmp/trace | tee /tmp/typescript-monitor.log | |
- name: monitor-tsc | |
continue-on-error: true | |
if: steps.tsc.outcome == 'success' | |
env: | |
GITHUB_PR_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
GITHUB_PR_REF: ${{ github.event.pull_request.head.ref || github.ref }} | |
run: yarn run ts-node .github/workflows/scripts/monitor-typescript.ts | |
- name: storybook | |
if: github.ref != 'refs/heads/master' && needs.files-changed.outputs.frontend == 'true' | |
env: | |
STORYBOOK_BUILD: 1 | |
run: | | |
yarn storybook-build | |
webpack: | |
needs: files-changed | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: volta-cli/action@v1 | |
if: github.ref == 'refs/heads/master' || needs.files-changed.outputs.frontend == 'true' | |
# See https://github.com/actions/cache/blob/master/examples.md#node---yarn for example | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
if: github.ref == 'refs/heads/master' || needs.files-changed.outputs.frontend == 'true' | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- uses: actions/cache@v1 # We are explicitly using v1 due to perf reasons | |
if: github.ref == 'refs/heads/master' || needs.files-changed.outputs.frontend == 'true' | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-v2-yarn-${{ hashFiles('yarn.lock', 'api-docs/yarn.lock') }} | |
- name: Install dependencies | |
if: github.ref == 'refs/heads/master' || needs.files-changed.outputs.frontend == 'true' | |
run: yarn install --frozen-lockfile | |
- uses: getsentry/size-limit-action@v4 | |
if: github.ref == 'refs/heads/master' || needs.files-changed.outputs.frontend == 'true' | |
env: | |
SENTRY_INSTRUMENTATION: 1 | |
SENTRY_WEBPACK_WEBHOOK_SECRET: ${{ secrets.SENTRY_WEBPACK_WEBHOOK_SECRET }} | |
with: | |
main_branch: master | |
skip_step: install | |
build_script: build | |
windows_verbatim_arguments: false | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
# This check runs once all dependant jobs have passed | |
# It symbolizes that all required Frontend checks have succesfully passed (Or skipped) | |
# This check is the only required Github check | |
frontend-required-check: | |
needs: [typescript-and-lint, webpack] | |
name: Frontend | |
# This is necessary since a failed/skipped dependent job would cause this job to be skipped | |
if: always() | |
runs-on: ubuntu-20.04 | |
steps: | |
# If any jobs we depend on fail, we will fail since this checks triggers Visual Snapshots which is a required check | |
- name: Check for failures | |
if: contains(needs.*.result, 'failure') | |
run: | | |
echo "One of the dependent jobs have failed. You may need to re-run it." && exit 1 |