diff --git a/.github/workflows/app-tests.yaml b/.github/workflows/app-tests.yaml index d28e417052b..5bc27704092 100644 --- a/.github/workflows/app-tests.yaml +++ b/.github/workflows/app-tests.yaml @@ -46,15 +46,19 @@ jobs: - uses: shivammathur/setup-php@v2 - name: Install root dependencies - run: composer install + uses: ramsey/composer-install@v3 + with: + working-directory: ${{ github.workspace }} - name: Build root packages run: php .github/build-packages.php - # We always install PHP deps because we of the UX Translator, which requires `var/translations` to exists - - name: Install App dependenies - run: composer update - working-directory: test_apps/encore-app + # We always install PHP deps because of the UX Translator, which requires `var/translations` to exists + - name: Install App dependencies + uses: ramsey/composer-install@v3 + with: + working-directory: test_apps/encore-app + dependency-versions: highest - if: matrix.ux-packages-source == 'php-vendor' name: Refresh dependencies from vendor/ diff --git a/.github/workflows/code-quality.yaml b/.github/workflows/code-quality.yaml index bf705c0bc6f..44744f2fc5f 100644 --- a/.github/workflows/code-quality.yaml +++ b/.github/workflows/code-quality.yaml @@ -34,10 +34,16 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - uses: shivammathur/setup-php@v2 with: php-version: '8.1' - - run: composer install + + - name: Install root dependencies + uses: ramsey/composer-install@v3 + with: + working-directory: ${{ github.workspace }} + - name: php-cs-fixer run: ./vendor/bin/php-cs-fixer fix --dry-run --diff @@ -83,8 +89,23 @@ jobs: php-version: 8.1 tools: flex + - name: Get composer cache directory + id: composer-cache + run: | + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: Cache packages dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-packages-${{ matrix.php-version }}-${{ matrix.dependency-version }}-${{ matrix.symfony-version }}-${{ matrix.minimum-stability }}-${{ hashFiles('src/**/composer.json') }} + restore-keys: | + ${{ runner.os }}-composer-packages-${{ matrix.php-version }}-${{ matrix.dependency-version }}-${{ matrix.symfony-version }}-${{ matrix.minimum-stability }} + - name: Install root dependencies - run: composer install + uses: ramsey/composer-install@v3 + with: + working-directory: ${{ github.workspace }} - name: Build root packages run: php .github/build-packages.php diff --git a/.github/workflows/functional-tests.yml b/.github/workflows/functional-tests.yml index a38db2e96ae..bc84147937a 100644 --- a/.github/workflows/functional-tests.yml +++ b/.github/workflows/functional-tests.yml @@ -57,16 +57,22 @@ jobs: tools: flex - name: Install root dependencies - run: composer install + uses: ramsey/composer-install@v3 + with: + working-directory: ${{ github.workspace }} - name: Build root packages run: php .github/build-packages.php - - name: Install dependencies with composer + - name: Configure composer dependencies stability + run: composer config minimum-stability ${{ matrix.minimum-stability || 'stable' }} working-directory: src/Turbo - run: | - composer config minimum-stability ${{ matrix.minimum-stability || 'stable' }} - composer update ${{ matrix.dependency-version == 'lowest' && '--prefer-lowest' || '' }} --no-progress --no-interaction + + - name: Install dependencies with composer + uses: ramsey/composer-install@v3 + with: + working-directory: src/Turbo + dependency-versions: ${{ matrix.dependency-version }} - name: Install JavaScript dependencies working-directory: src/Turbo/tests/app diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index facda11d330..f32d91dc687 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -68,8 +68,23 @@ jobs: php-version: ${{ matrix.php-version }} tools: flex + - name: Get composer cache directory + id: composer-cache + run: | + echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT + + - name: Cache packages dependencies + uses: actions/cache@v4 + with: + path: ${{ steps.composer-cache.outputs.dir }} + key: ${{ runner.os }}-composer-packages-${{ matrix.php-version }}-${{ matrix.dependency-version }}-${{ matrix.symfony-version }}-${{ matrix.minimum-stability }}-${{ hashFiles('src/**/composer.json') }} + restore-keys: | + ${{ runner.os }}-composer-packages-${{ matrix.php-version }}-${{ matrix.dependency-version }}-${{ matrix.symfony-version }}-${{ matrix.minimum-stability }} + - name: Install root dependencies - run: composer install + uses: ramsey/composer-install@v3 + with: + working-directory: ${{ github.workspace }} - name: Build root packages run: php .github/build-packages.php