Skip to content

Commit d1aa3a2

Browse files
committed
[CI] Cache Composer dependencies
1 parent 1a21bc3 commit d1aa3a2

File tree

8 files changed

+127
-27
lines changed

8 files changed

+127
-27
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Install root dependencies
2+
runs:
3+
using: composite
4+
steps:
5+
- name: Get Composer Cache Directory
6+
id: composer-cache
7+
run: |
8+
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
9+
shell: bash
10+
11+
- name: Cache root Composer dependencies
12+
uses: actions/cache@v4
13+
with:
14+
path: ${{ steps.composer-cache.outputs.dir }}
15+
key: ${{ runner.os }}-composer-root-${{ hashFiles('composer.json') }}
16+
restore-keys: |
17+
${{ runner.os }}-composer-root-
18+
19+
- name: Install root Composer dependencies
20+
run: composer install
21+
shell: bash
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Install website dependencies
2+
inputs:
3+
dependency-version:
4+
description: 'The version of dependencies to install. Can be "locked" or "highest"'
5+
default: 'locked'
6+
required: false
7+
runs:
8+
using: composite
9+
steps:
10+
- name: Get Composer Cache Directory
11+
id: composer-cache
12+
run: |
13+
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
14+
shell: bash
15+
16+
- name: Cache website Composer dependencies
17+
uses: actions/cache@v4
18+
with:
19+
path: ${{ steps.composer-cache.outputs.dir }}
20+
key: ${{ runner.os }}-composer-website-${{ inputs.dependency-version }}-${{ hashFiles('ux.symfony.com/composer.json') }}
21+
restore-keys: |
22+
${{ runner.os }}-composer-website-${{ inputs.dependency-version }}-
23+
24+
- name: Install website Composer dependencies
25+
run: composer ${{ inputs.dependency-version == 'highest' && 'update' || 'install' }}
26+
shell: bash
27+
working-directory: ux.symfony.com

.github/workflows/app-tests.yaml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,20 @@ jobs:
4545
4646
- uses: shivammathur/setup-php@v2
4747

48-
- name: Install root dependencies
49-
run: composer install
48+
- name: Get Composer Cache Directory
49+
id: composer-cache
50+
run: |
51+
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
52+
53+
- name: Cache Testing apps dependencies
54+
uses: actions/cache@v4
55+
with:
56+
path: vendor
57+
key: ${{ runner.os }}-composer-testing-app-${{ matrix.ux-packages-source }}-${{ hashFiles('test_apps/**/composer.json') }}
58+
restore-keys: |
59+
${{ runner.os }}-composer-testing-app-${{ matrix.ux-packages-source }}-
60+
61+
- uses: ./.github/workflows/actions/install-root-dependencies
5062

5163
- name: Build root packages
5264
run: php .github/build-packages.php

.github/workflows/code-quality.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ jobs:
8383
php-version: 8.1
8484
tools: flex
8585

86-
- name: Install root dependencies
87-
run: composer install
86+
- uses: ./.github/workflows/actions/install-root-dependencies
8887

8988
- name: Build root packages
9089
run: php .github/build-packages.php

.github/workflows/functional-tests.yml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ on:
1010
- '.github/workflows/functional-tests.yml'
1111
- 'src/Turbo/**'
1212

13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
15+
cancel-in-progress: true
16+
1317
jobs:
1418
turbo-tests:
1519
runs-on: ubuntu-latest
@@ -56,8 +60,21 @@ jobs:
5660
php-version: ${{ matrix.php-version }}
5761
tools: flex
5862

59-
- name: Install root dependencies
60-
run: composer install
63+
- name: Get Composer Cache Directory
64+
id: composer-cache
65+
run: |
66+
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
67+
shell: bash
68+
69+
- name: Cache packages dependencies
70+
uses: actions/cache@v4
71+
with:
72+
path: ${{ steps.composer-cache.outputs.dir }}
73+
key: ${{ runner.os }}-composer-turbo-${{ matrix.php-version }}-${{ matrix.dependency-version }}-${{ matrix.symfony-version }}-${{ matrix.minimum-stability }}-${{ hashFiles('src/**/composer.json') }}
74+
restore-keys: |
75+
${{ runner.os }}-composer-turbo-${{ matrix.php-version }}-
76+
77+
- uses: ./.github/workflows/actions/install-root-dependencies
6178

6279
- name: Build root packages
6380
run: php .github/build-packages.php

.github/workflows/toolkit-kits-code-quality.yaml

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,23 @@ jobs:
1515
- uses: actions/checkout@v4
1616

1717
- uses: shivammathur/setup-php@v2
18+
19+
- name: Get Composer Cache Directory
20+
id: composer-cache
21+
run: |
22+
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
23+
24+
- name: Cache dependencies
25+
uses: actions/cache@v4
1826
with:
19-
php-version: 8.3
27+
path: ${{ steps.composer-cache.outputs.dir }}
28+
key: ${{ runner.os }}-composer-kits-${{ hashFiles('composer.json') }}
29+
restore-keys: |
30+
${{ runner.os }}-composer-kits-
2031
2132
- name: Install composer packages
22-
uses: ramsey/composer-install@v3
23-
with:
24-
working-directory: src/Toolkit
33+
run: composer install
34+
working-directory: src/Toolkit
2535

2636
- name: Check kits code style
2737
run: php vendor/bin/twig-cs-fixer check kits

.github/workflows/unit-tests.yaml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,20 @@ jobs:
6868
php-version: ${{ matrix.php-version }}
6969
tools: flex
7070

71-
- name: Install root dependencies
72-
run: composer install
71+
- name: Get Composer Cache Directory
72+
id: composer-cache
73+
run: |
74+
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
75+
76+
- name: Cache packages dependencies
77+
uses: actions/cache@v4
78+
with:
79+
path: ${{ steps.composer-cache.outputs.dir }}
80+
key: ${{ runner.os }}-composer-packages-${{ matrix.php-version }}-${{ matrix.dependency-version }}-${{ matrix.symfony-version }}-${{ matrix.minimum-stability }}-${{ hashFiles('src/**/composer.json') }}
81+
restore-keys: |
82+
${{ runner.os }}-composer-packages-${{ matrix.php-version }}-
83+
84+
- uses: ./.github/workflows/actions/install-root-dependencies
7385

7486
- name: Build root packages
7587
run: php .github/build-packages.php

.github/workflows/ux.symfony.com.yaml

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ jobs:
2626
working-directory: ux.symfony.com
2727
steps:
2828
- uses: actions/checkout@v4
29+
2930
- uses: shivammathur/setup-php@v2
3031
with:
3132
php-version: '8.3'
3233
tools: php-cs-fixer
33-
- name: Install dependencies
34-
uses: ramsey/composer-install@v3
35-
with:
36-
working-directory: ux.symfony.com
34+
35+
- uses: ./.github/workflows/actions/install-website-dependencies
36+
3737
- name: php-cs-fixer
3838
run: php-cs-fixer check --diff
3939

@@ -45,13 +45,13 @@ jobs:
4545
working-directory: ux.symfony.com
4646
steps:
4747
- uses: actions/checkout@v4
48+
4849
- uses: shivammathur/setup-php@v2
4950
with:
5051
php-version: '8.3'
51-
- name: Install dependencies
52-
uses: ramsey/composer-install@v3
53-
with:
54-
working-directory: ux.symfony.com
52+
53+
- uses: ./.github/workflows/actions/install-website-dependencies
54+
5555
- name: twig-cs-fixer
5656
run: vendor/bin/twig-cs-fixer lint templates --report=github
5757

@@ -63,24 +63,26 @@ jobs:
6363
working-directory: ux.symfony.com
6464
steps:
6565
- uses: actions/checkout@v4
66+
6667
- uses: shivammathur/setup-php@v2
6768
with:
6869
php-version: '8.3'
69-
- name: Install root dependencies
70-
uses: ramsey/composer-install@v3
71-
with:
72-
working-directory: ${{ github.workspace }}
70+
71+
- uses: ./.github/workflows/actions/install-root-dependencies
72+
7373
- name: Build root packages
7474
run: php .github/build-packages.php
7575
working-directory: ${{ github.workspace }}
76-
- name: Install dependencies
77-
uses: ramsey/composer-install@v3
76+
77+
- uses: ./.github/workflows/actions/install-website-dependencies
7878
with:
79-
working-directory: ux.symfony.com
8079
dependency-versions: 'highest'
80+
8181
- name: Importmap dependencies
8282
run: php bin/console importmap:install
83+
8384
- name: Build Sass assets
8485
run: php bin/console sass:build
86+
8587
- name: Tests
8688
run: vendor/bin/phpunit

0 commit comments

Comments
 (0)