diff --git a/.github/workflows/docs-screenshots.yml b/.github/workflows/docs-screenshots.yml index 07a908bdc2..b7fe8c6755 100644 --- a/.github/workflows/docs-screenshots.yml +++ b/.github/workflows/docs-screenshots.yml @@ -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 diff --git a/.github/workflows/fix-code-style.yml b/.github/workflows/fix-code-style.yml index a0edc883b8..d21c941de3 100644 --- a/.github/workflows/fix-code-style.yml +++ b/.github/workflows/fix-code-style.yml @@ -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 diff --git a/.github/workflows/phpstan.yml b/.github/workflows/phpstan.yml index 7c0539138c..005cde58ab 100644 --- a/.github/workflows/phpstan.yml +++ b/.github/workflows/phpstan.yml @@ -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: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 65bd704fb7..bebf42ff54 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -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: |