diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 858efc57fe..65bd704fb7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -47,12 +47,15 @@ jobs: - 5432:5432 options: --health-cmd=pg_isready --health-interval=10s --health-timeout=5s --health-retries=3 steps: - - uses: actions/checkout@v3 - - name: Cache dependencies - uses: actions/cache@v3 + - uses: actions/checkout@v4 + - name: Cache Composer dependencies + uses: actions/cache@v4 with: path: ~/.composer/cache/files - key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} + key: composer-${{ matrix.php }}-${{ matrix.laravel }}-${{ hashFiles('composer.json') }} + restore-keys: | + composer-${{ matrix.php }}-${{ matrix.laravel }}- + composer-${{ matrix.php }}- - name: Set up PHP uses: shivammathur/setup-php@v2 with: @@ -67,14 +70,25 @@ jobs: uses: actions/setup-node@v4 with: node-version: lts/* + cache: npm - name: Install npm dependencies run: npm ci + - name: Cache Playwright browsers + id: playwright-cache + uses: actions/cache@v4 + with: + path: ~/.cache/ms-playwright + key: playwright-${{ runner.os }}-${{ hashFiles('package-lock.json') }} - name: Install Playwright browsers + if: steps.playwright-cache.outputs.cache-hit != 'true' uses: nick-fields/retry@v3 with: timeout_minutes: 10 max_attempts: 3 command: npx playwright install --with-deps + - name: Install Playwright system dependencies + if: steps.playwright-cache.outputs.cache-hit == 'true' + run: npx playwright install-deps - name: Wait for MySQL if: matrix.db == 'mysql' run: |