name: UI Test on: push: branches: [master] pull_request: branches: [master] defaults: run: working-directory: packages/ui jobs: files-changed: name: Detect File Changes runs-on: ubuntu-latest outputs: ui: ${{ steps.changes.outputs.ui }} steps: - name: Checkout uses: actions/checkout@v6 - name: Check for file changes uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: changes with: token: ${{ github.token }} filters: .github/file-filters.yml test: name: Unit Tests if: needs.files-changed.outputs.ui == 'true' needs: files-changed runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version-file: 'packages/ui/.tool-versions' cache: 'npm' cache-dependency-path: packages/ui/package-lock.json - name: Install dependencies run: npm ci - name: Run tests with coverage run: npm run test:coverage - name: Upload coverage report uses: actions/upload-artifact@v6 if: always() with: name: coverage-report path: packages/ui/coverage/ retention-days: 7