Bump @types/node from 18.0.0 to 22.15.30 #1222
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
# TODO(billy): this workflow has not been re-named from `acceptance` because | |
# Visual Snapshots compares against artifacts from the same workflow name (on main branch) | |
# We should rename this when we have a more finalized naming scheme. | |
# | |
# Also note that this name *MUST* match the filename because GHA | |
# only provides the workflow name (https://docs.github.com/en/free-pro-team@latest/actions/reference/environment-variables#default-environment-variables) | |
# and GH APIs only support querying by workflow *FILENAME* (https://developer.github.com/v3/actions/workflows/#get-a-workflow) | |
name: acceptance | |
on: | |
push: | |
branches: | |
- master | |
- releases/** | |
pull_request: | |
# Cancel in progress workflows on pull_requests. | |
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
# hack for https://github.com/actions/cache/issues/810#issuecomment-1222550359 | |
env: | |
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 3 | |
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: | |
acceptance: ${{ steps.changes.outputs.acceptance }} | |
backend: ${{ steps.changes.outputs.backend_all }} | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 | |
- name: Check for backend file changes | |
uses: getsentry/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1 | |
id: changes | |
with: | |
token: ${{ github.token }} | |
filters: .github/file-filters.yml | |
frontend: | |
if: needs.files-changed.outputs.acceptance == 'true' | |
needs: files-changed | |
name: frontend tests | |
# If you change the runs-on image, you must also change the runner in jest-balance.yml | |
# so that the balancer runs in the same environment as the tests. | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 20 | |
strategy: | |
# This helps not having to run multiple jobs because one fails, thus, reducing resource usage | |
# and reducing the risk that one of many runs would turn red again (read: intermittent tests) | |
fail-fast: false | |
matrix: | |
# XXX: When updating this, make sure you also update CI_NODE_TOTAL. | |
instance: [0, 1, 2, 3] | |
env: | |
VISUAL_HTML_ENABLE: 1 | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 | |
name: Checkout sentry | |
with: | |
# Avoid codecov error message related to SHA resolution: | |
# https://github.com/codecov/codecov-bash/blob/7100762afbc822b91806a6574658129fe0d23a7d/codecov#L891 | |
fetch-depth: '2' | |
- uses: getsentry/action-setup-volta@54775a59c41065f54ecc76d1dd5f2cdc7a1550cb # v1.1.0 | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Build CSS | |
run: NODE_ENV=production yarn build-css | |
- name: jest | |
env: | |
GITHUB_PR_SHA: ${{ github.event.pull_request.head.sha || github.sha }} | |
GITHUB_PR_REF: ${{ github.event.pull_request.head.ref || github.ref }} | |
# XXX: CI_NODE_TOTAL must be hardcoded to the length of strategy.matrix.instance. | |
# Otherwise, if there are other things in the matrix, using strategy.job-total | |
# wouldn't be correct. | |
CI_NODE_TOTAL: 4 | |
CI_NODE_INDEX: ${{ matrix.instance }} | |
run: | | |
SENTRY_PROFILER_LOGGING_MODE=eager JEST_TESTS=$(yarn -s jest --listTests --json) yarn test-ci --forceExit | |
- name: Save HTML artifacts | |
uses: actions/upload-artifact@83fd05a356d7e2593de66fc9913b3002723633cb # v3.1.1 | |
with: | |
retention-days: 14 | |
name: jest-html | |
path: .artifacts/visual-snapshots/jest | |
- name: Create Images from HTML | |
uses: getsentry/action-html-to-image@dc153dae538e6e1138f77156d8e62e3b2b897f41 # main | |
with: | |
base-path: .artifacts/visual-snapshots/jest | |
css-path: src/sentry/static/sentry/dist/entrypoints/sentry.css | |
- name: Save snapshots | |
uses: getsentry/action-visual-snapshot@5811b6c34e1ec3b9fc30613d4b55ef740fec6086 # main | |
with: | |
save-only: true | |
snapshot-path: .artifacts/visual-snapshots | |
- name: Handle artifacts | |
uses: ./.github/actions/artifacts | |
with: | |
files: .artifacts/coverage/* | |
type: frontend | |
acceptance: | |
if: needs.files-changed.outputs.acceptance == 'true' | |
needs: files-changed | |
name: acceptance | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 25 | |
strategy: | |
# This helps not having to run multiple jobs because one fails, thus, reducing resource usage | |
# and reducing the risk that one of many runs would turn red again (read: intermittent tests) | |
fail-fast: false | |
matrix: | |
# XXX: When updating this, make sure you also update MATRIX_INSTANCE_TOTAL. | |
instance: [0, 1, 2, 3] | |
pg-version: ['9.6'] | |
env: | |
# XXX: MATRIX_INSTANCE_TOTAL must be hardcoded to the length of strategy.matrix.instance. | |
MATRIX_INSTANCE_TOTAL: 4 | |
VISUAL_SNAPSHOT_ENABLE: 1 | |
TEST_GROUP_STRATEGY: roundrobin | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 | |
name: Checkout sentry | |
- uses: getsentry/action-setup-volta@54775a59c41065f54ecc76d1dd5f2cdc7a1550cb # v1.1.0 | |
- name: Step configurations | |
id: config | |
run: echo "webpack-path=.webpack_cache" >> "$GITHUB_OUTPUT" | |
- name: webpack cache | |
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11 | |
with: | |
path: ${{ steps.config.outputs.webpack-path }} | |
key: ${{ runner.os }}-v2-webpack-cache-${{ hashFiles('webpack.config.ts') }} | |
- name: Install Javascript Dependencies | |
run: | | |
yarn install --frozen-lockfile | |
- name: webpack | |
env: | |
WEBPACK_CACHE_PATH: ${{ steps.config.outputs.webpack-path }} | |
SENTRY_INSTRUMENTATION: 1 | |
# this is fine to not have for forks, it shouldn't fail | |
SENTRY_WEBPACK_WEBHOOK_SECRET: ${{ secrets.SENTRY_WEBPACK_WEBHOOK_SECRET }} | |
run: | | |
yarn build-acceptance | |
- name: Setup sentry env | |
uses: ./.github/actions/setup-sentry | |
id: setup | |
with: | |
snuba: true | |
pg-version: ${{ matrix.pg-version }} | |
- name: Run acceptance tests (#${{ steps.setup.outputs.matrix-instance-number }} of ${{ steps.setup.outputs.matrix-instance-total }}) | |
run: | | |
mkdir -p ${{ steps.setup.outputs.acceptance-dir }} | |
mkdir -p ${{ steps.setup.outputs.acceptance-dir }}-mobile | |
mkdir -p ${{ steps.setup.outputs.acceptance-dir }}-tooltips | |
make run-acceptance | |
env: | |
PYTEST_SNAPSHOTS_DIR: ${{ steps.setup.outputs.acceptance-dir }} | |
- name: Save snapshots | |
uses: getsentry/action-visual-snapshot@5811b6c34e1ec3b9fc30613d4b55ef740fec6086 # main | |
with: | |
save-only: true | |
snapshot-path: .artifacts/visual-snapshots | |
- name: Handle artifacts | |
uses: ./.github/actions/artifacts | |
if: needs.files-changed.outputs.backend_all == 'true' | |
chartcuterie: | |
if: needs.files-changed.outputs.acceptance == 'true' | |
needs: files-changed | |
name: chartcuterie integration | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 30 | |
strategy: | |
# This helps not having to run multiple jobs because one fails, thus, reducing resource usage | |
# and reducing the risk that one of many runs would turn red again (read: intermittent tests) | |
fail-fast: false | |
matrix: | |
# XXX: When updating this, make sure you also update MATRIX_INSTANCE_TOTAL. | |
instance: [0] | |
env: | |
# XXX: MATRIX_INSTANCE_TOTAL must be hardcoded to the length of strategy.matrix.instance. | |
MATRIX_INSTANCE_TOTAL: 1 | |
TEST_GROUP_STRATEGY: roundrobin | |
VISUAL_SNAPSHOT_ENABLE: 1 | |
steps: | |
- uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 | |
with: | |
# Avoid codecov error message related to SHA resolution: | |
# https://github.com/codecov/codecov-bash/blob/7100762afbc822b91806a6574658129fe0d23a7d/codecov#L891 | |
fetch-depth: '2' | |
- name: Setup sentry env | |
uses: ./.github/actions/setup-sentry | |
id: setup | |
with: | |
chartcuterie: true | |
- name: yarn cache | |
uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # v3.0.11 | |
with: | |
path: ${{ steps.setup.outputs.yarn-cache-dir }} | |
key: ${{ runner.os }}-v2-yarn-${{ hashFiles('yarn.lock', 'api-docs/yarn.lock') }} | |
- name: Install Javascript Dependencies | |
run: | | |
yarn install --frozen-lockfile | |
- name: Build chartcuterie configuration module | |
run: | | |
make build-chartcuterie-config | |
- name: Run chartcuterie tests (${{ steps.setup.outputs.matrix-instance-number }} of ${{ steps.setup.outputs.matrix-instance-total }}) | |
run: | | |
mkdir -p ${{ steps.setup.outputs.acceptance-dir }} | |
make test-chartcuterie | |
env: | |
PYTEST_SNAPSHOTS_DIR: ${{ steps.setup.outputs.acceptance-dir }} | |
- name: Save snapshots | |
uses: getsentry/action-visual-snapshot@5811b6c34e1ec3b9fc30613d4b55ef740fec6086 # main | |
with: | |
save-only: true | |
snapshot-path: .artifacts/visual-snapshots | |
- name: Handle artifacts | |
uses: ./.github/actions/artifacts | |
if: needs.files-changed.outputs.backend_all == 'true' | |
visual-diff: | |
if: always() | |
# This guarantees that we will only schedule Visual Snapshots if all | |
# workflows that generate artifacts succeed | |
needs: [acceptance, frontend, chartcuterie, files-changed] | |
name: triggers visual snapshot | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 20 | |
steps: | |
# If any jobs we depend on fail, we will fail since this checks triggers Visual Snapshots which is a required check | |
# NOTE: A timeout is considered a failure | |
- name: Check for failures | |
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') | |
run: | | |
echo "One of the dependent jobs have failed. You may need to re-run it." && exit 1 | |
- name: Diff snapshots | |
uses: getsentry/action-visual-snapshot@5811b6c34e1ec3b9fc30613d4b55ef740fec6086 # main | |
# Run this step only if there are acceptance related code changes | |
# Forks are handled in visual-diff.yml | |
if: needs.files-changed.outputs.acceptance == 'true' && github.event.pull_request.head.repo.full_name == 'getsentry/sentry' | |
with: | |
api-token: ${{ secrets.VISUAL_SNAPSHOT_SECRET }} | |
gcs-bucket: 'sentry-visual-snapshots' | |
gcp-service-account-key: ${{ secrets.SNAPSHOT_GOOGLE_SERVICE_ACCOUNT_KEY }} | |
# Since Visual Snapshot is a required check we need to pretend to have run | |
fake-visual-snapshot: | |
name: Visual Snapshot | |
needs: [files-changed] | |
# Opposite condition to "triggers visual snapshot" required check | |
if: needs.files-changed.outputs.acceptance != 'true' | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Sentaur attack | |
run: | | |
echo "This check pretends to be the Visual Snapshot to satisfy Github required checks" |