diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 497efe6d7..ab2e19625 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -64,11 +64,6 @@ jobs: e2e: runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - shard: [1, 2] - services: postgres: image: postgres:16 @@ -115,21 +110,13 @@ jobs: env: DB_PORT: ${{ job.services.postgres.ports['5432'] }} REDIS_PORT: ${{ job.services.redis.ports['6379'] }} - run: php artisan test tests/Browser --compact --shard=${{ matrix.shard }}/2 + run: php artisan test tests/Browser --compact - name: Upload Playwright artifacts if: failure() uses: actions/upload-artifact@v7 with: - name: playwright-artifacts-${{ matrix.shard }} + name: playwright-artifacts path: tests/Browser/Screenshots if-no-files-found: ignore retention-days: 7 - - e2e-gate: - if: always() - needs: e2e - runs-on: ubuntu-latest - steps: - - name: Require all e2e shards to pass - run: '[ "${{ needs.e2e.result }}" = "success" ] || exit 1' diff --git a/composer.json b/composer.json index 6904ab78f..8690d44b2 100644 --- a/composer.json +++ b/composer.json @@ -125,6 +125,9 @@ "@test", "@php artisan test tests/Browser" ], + "test:tia": [ + "vendor/bin/pest --parallel --tia" + ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover --ansi" diff --git a/tests/Pest.php b/tests/Pest.php index 8c954741f..ecebbc504 100644 --- a/tests/Pest.php +++ b/tests/Pest.php @@ -33,6 +33,19 @@ ->use(RefreshDatabase::class) ->in('Browser'); +/* +|-------------------------------------------------------------------------- +| Test Impact Analysis +|-------------------------------------------------------------------------- +| +| Only re-run tests affected by local changes, replaying cached results for +| the rest. Scoped to local runs via "locally()" — automatically skipped on +| CI (or when the "--ci" flag is passed), which always runs the full suite. +| +*/ + +pest()->tia()->locally(); + /* |-------------------------------------------------------------------------- | Expectations