Action caching

This commit is contained in:
Dan Harrin
2026-02-04 15:58:16 +00:00
parent ee51dd9f99
commit 6ca4737b90
4 changed files with 55 additions and 19 deletions
+23 -6
View File
@@ -10,12 +10,14 @@ jobs:
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: Cache dependencies
uses: actions/cache@v2
- uses: actions/checkout@v4
- name: Cache Composer dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: dependencies-composer-${{ hashFiles('composer.json') }}
key: composer-screenshots-${{ hashFiles('docs-assets/app/composer.json') }}
restore-keys: |
composer-screenshots-
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
@@ -23,11 +25,26 @@ jobs:
extensions: mbstring, pdo, pdo_sqlite
coverage: none
- name: Set up Node
uses: actions/setup-node@v2
- name: Install dependencies
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: Cache Puppeteer browser
id: puppeteer-cache
uses: actions/cache@v4
with:
path: ~/.cache/puppeteer
key: puppeteer-${{ runner.os }}-${{ hashFiles('docs-assets/screenshots/package-lock.json') }}
- name: Install screenshot dependencies
run: |
cd docs-assets/screenshots
npm ci
env:
PUPPETEER_SKIP_DOWNLOAD: ${{ steps.puppeteer-cache.outputs.cache-hit }}
- name: Cache app npm dependencies
uses: actions/cache@v4
with:
path: docs-assets/app/node_modules
key: npm-screenshots-app-${{ hashFiles('docs-assets/app/package-lock.json') }}
- name: Set up app
run: |
cd docs-assets/app
+12 -2
View File
@@ -8,15 +8,25 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Cache Composer dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: composer-cs-${{ hashFiles('composer.json') }}
restore-keys: |
composer-cs-
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.5
- name: Set up Node
uses: actions/setup-node@v2
uses: actions/setup-node@v4
with:
node-version: lts/*
cache: npm
- name: Install dependencies
run: |
composer install --no-interaction
+14 -4
View File
@@ -36,12 +36,22 @@ jobs:
pest-plugin-laravel: ^3.0
name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }}
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: Cache PHPStan result
uses: actions/cache@v4
with:
path: /tmp/phpstan
key: phpstan-${{ matrix.php }}-${{ matrix.laravel }}-${{ github.sha }}
restore-keys: |
phpstan-${{ matrix.php }}-${{ matrix.laravel }}-
- name: Set up PHP
uses: shivammathur/setup-php@v2
with:
+6 -7
View File
@@ -73,22 +73,21 @@ jobs:
cache: npm
- name: Install npm dependencies
run: npm ci
- name: Cache Playwright browsers
- name: Install Chromium system dependencies
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends libnss3 libatk-bridge2.0-0 libdrm2 libxcomposite1 libxdamage1 libxrandr2 libgbm1 libxkbcommon0 libpango-1.0-0 libcairo2 libasound2t64
- name: Cache Playwright Chromium
id: playwright-cache
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: playwright-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: Install Playwright browsers
key: playwright-chromium-${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: Install Playwright Chromium
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
command: npx playwright install chromium
- name: Wait for MySQL
if: matrix.db == 'mysql'
run: |