44 pull_request :
55
66concurrency :
7- group : pr -${{ github.event.pull_request.number }}
7+ group : ci -${{ github.event.pull_request.number }}
88 cancel-in-progress : true
99
1010permissions :
1111 contents : read
1212
1313jobs :
14- resolve-php-version :
15- name : Resolve PHP version
14+ resolve-tooling-image :
15+ name : Resolve tooling image
1616 runs-on : ubuntu-latest
1717 timeout-minutes : 5
1818 outputs :
19- php-version : ${{ steps.config.outputs.php-version }}
19+ php-image : ${{ steps.config.outputs.php-image }}
2020 steps :
2121 - name : Checkout
2222 uses : actions/checkout@v7
2323
24- - name : Resolve PHP version from composer.json
24+ - name : Resolve tooling image from the Makefile
2525 id : config
26- run : |
27- version=$(jq -r '.require.php' composer.json | grep -oP '\d+\.\d+' | head -1)
28- echo "php-version=$version" >> "$GITHUB_OUTPUT"
26+ run : echo "php-image=$(make show-image)" >> "$GITHUB_OUTPUT"
2927
3028 build :
3129 name : Build
32- needs : resolve-php-version
30+ needs : resolve-tooling-image
3331 runs-on : ubuntu-latest
3432 timeout-minutes : 15
33+ env :
34+ image : ${{ needs.resolve-tooling-image.outputs.php-image }}
35+ workspace : /var/www/html
3536 steps :
3637 - name : Checkout
3738 uses : actions/checkout@v7
3839
39- - name : Setup PHP
40- uses : shivammathur/setup-php@v2
41- with :
42- tools : composer:2
43- php-version : ${{ needs.resolve-php-version.outputs.php-version }}
44-
4540 - name : Validate composer.json
46- run : composer validate --no-interaction
41+ run : docker run --rm -v "${PWD}":${{ env.workspace }} ${{ env.image }} composer validate --no-interaction
4742
4843 - name : Install dependencies
49- run : composer install --no-progress --optimize-autoloader --prefer-dist --no-interaction
44+ run : >
45+ docker run --rm -v "${PWD}":${{ env.workspace }} ${{ env.image }}
46+ composer install --no-progress --optimize-autoloader --prefer-dist --no-interaction
5047
5148 - name : Upload vendor and composer.lock as artifact
5249 uses : actions/upload-artifact@v7
@@ -58,48 +55,36 @@ jobs:
5855
5956 auto-review :
6057 name : Auto review
61- needs : [resolve-php-version , build]
58+ needs : [resolve-tooling-image , build]
6259 runs-on : ubuntu-latest
6360 timeout-minutes : 15
6461 steps :
6562 - name : Checkout
6663 uses : actions/checkout@v7
6764
68- - name : Setup PHP
69- uses : shivammathur/setup-php@v2
70- with :
71- tools : composer:2
72- php-version : ${{ needs.resolve-php-version.outputs.php-version }}
73-
7465 - name : Download vendor artifact from build
7566 uses : actions/download-artifact@v8
7667 with :
7768 name : vendor-artifact
7869 path : .
7970
8071 - name : Run review
81- run : composer review
72+ run : make review
8273
8374 tests :
8475 name : Tests
85- needs : [resolve-php-version , auto-review]
76+ needs : [resolve-tooling-image , auto-review]
8677 runs-on : ubuntu-latest
8778 timeout-minutes : 15
8879 steps :
8980 - name : Checkout
9081 uses : actions/checkout@v7
9182
92- - name : Setup PHP
93- uses : shivammathur/setup-php@v2
94- with :
95- tools : composer:2
96- php-version : ${{ needs.resolve-php-version.outputs.php-version }}
97-
9883 - name : Download vendor artifact from build
9984 uses : actions/download-artifact@v8
10085 with :
10186 name : vendor-artifact
10287 path : .
10388
10489 - name : Run tests
105- run : composer tests
90+ run : make tests
0 commit comments