Skip to content

docs: sample app #18828

docs: sample app

docs: sample app #18828

Workflow file for this run

name: Run Unit & Integration Tests
on:
push:
branches:
- master
- staging/**
pull_request:
merge_group:
concurrency:
group: tests-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
should-run:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.check.outputs.should_skip }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
docs_only:
- 'docs/**'
non_docs:
- '**'
- '!docs/**'
- name: Determine if should skip
id: check
run: |
# Run on PRs only if not docs only
# Always run on merge queue
# Always run on direct pushes to master (not merge queue bot)
IS_PR="${{ github.event_name == 'pull_request' }}"
IS_MERGE_QUEUE="${{ github.event_name == 'merge_group' }}"
IS_DIRECT_PUSH_TO_MASTER="${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.actor != 'github-merge-queue[bot]' }}"
IS_DOCS_ONLY="${{ steps.filter.outputs.docs_only == 'true' && steps.filter.outputs.non_docs != 'true' }}"
SHOULD_SKIP="true"
# Always run on merge queue and direct push to master
if [[ "$IS_MERGE_QUEUE" == "true" || "$IS_DIRECT_PUSH_TO_MASTER" == "true" ]]; then
SHOULD_SKIP="false"
# Run on PR only if not docs only
elif [[ "$IS_PR" == "true" && "$IS_DOCS_ONLY" != "true" ]]; then
SHOULD_SKIP="false"
fi
echo "should_skip=$SHOULD_SKIP" >> $GITHUB_OUTPUT
tests:
needs: should-run
runs-on: ubuntu-latest
steps:
- name: Checkout
if: needs.should-run.outputs.should_skip != 'true'
uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Use Node.js
if: needs.should-run.outputs.should_skip != 'true'
uses: actions/setup-node@v4
with:
cache: 'npm'
node-version-file: '.nvmrc'
- run: npm ci
if: needs.should-run.outputs.should_skip != 'true'
- run: npm run ts-build
if: needs.should-run.outputs.should_skip != 'true'
- run: npm run test:unit -- --exclude packages/cli/
if: needs.should-run.outputs.should_skip != 'true'
- run: npm run test:integration
if: needs.should-run.outputs.should_skip != 'true'