1414      fail-fast : false 
1515      matrix :
1616        operating-system : [ubuntu-latest] 
17-         php-versions : ['8.1', '8.2', '8.3'] 
17+         php-versions : ['8.1', '8.2', '8.3', '8.4' ] 
1818
1919    steps :
2020      - name : Setup PHP, with composer and extensions 
@@ -37,14 +37,14 @@ jobs:
3737          git config --global core.autocrlf false  
3838          git config --global core.eol lf 
3939
40- uses : actions/checkout@v3  
40+ uses : actions/checkout@v4  
4141
4242      - name : Get composer cache directory 
4343        id : composer-cache 
4444        run : echo "::set-output name=dir::$(composer config cache-files-dir)" 
4545
4646      - name : Cache composer dependencies 
47-         uses : actions/cache@v3  
47+         uses : actions/cache@v4  
4848        with :
4949          path : ${{ steps.composer-cache.outputs.dir }} 
5050          key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} 
5757        run : composer install --no-progress --prefer-dist --optimize-autoloader 
5858
5959      - name : Decide whether to run code coverage or not 
60-         if : ${{ matrix.php-versions != '8.2 ' || matrix.operating-system != 'ubuntu-latest' }} 
60+         if : ${{ matrix.php-versions != '8.4 ' || matrix.operating-system != 'ubuntu-latest' }} 
6161        run : | 
6262          echo "NO_COVERAGE=--no-coverage" >> $GITHUB_ENV 
6363
@@ -67,20 +67,20 @@ jobs:
6767          ./vendor/bin/phpunit $NO_COVERAGE 
6868
6969name : Save coverage data 
70-         if : ${{ matrix.php-versions == '8.2 ' && matrix.operating-system == 'ubuntu-latest' }} 
71-         uses : actions/upload-artifact@v3  
70+         if : ${{ matrix.php-versions == '8.4 ' && matrix.operating-system == 'ubuntu-latest' }} 
71+         uses : actions/upload-artifact@v4  
7272        with :
7373          name : build-data 
7474          path : ${{ github.workspace }}/build 
7575
7676      - name : List files in the workspace 
77-         if : ${{ matrix.php-versions == '8.2 ' && matrix.operating-system == 'ubuntu-latest' }} 
77+         if : ${{ matrix.php-versions == '8.4 ' && matrix.operating-system == 'ubuntu-latest' }} 
7878        run : | 
7979          ls -la ${{ github.workspace }}/build 
8080          ls -la ${{ github.workspace }}/build/logs 
8181
8282name : Code Coverage Report 
83-         if : ${{ matrix.php-versions == '8.2 ' && matrix.operating-system == 'ubuntu-latest' }} 
83+         if : ${{ matrix.php-versions == '8.4 ' && matrix.operating-system == 'ubuntu-latest' }} 
84848585        with :
8686          filename : build/logs/cobertura.xml 
@@ -100,22 +100,23 @@ jobs:
100100      - name : Setup PHP, with composer and extensions 
101101        uses : shivammathur/setup-php@v2  # https://github.com/shivammathur/setup-php
102102        with :
103-           php-version : ' 8.2' 
103+           #  Should be the lowest supported version
104+           php-version : ' 8.1' 
104105          extensions : mbstring, xml 
105106          tools : composer:v2 
106107          coverage : none 
107108
108109      - name : Setup problem matchers for PHP 
109110        run : echo "::add-matcher::${{ runner.tool_cache }}/php.json" 
110111
111-       - uses : actions/checkout@v3  
112+       - uses : actions/checkout@v4  
112113
113114      - name : Get composer cache directory 
114115        id : composer-cache 
115116        run : echo "::set-output name=dir::$(composer config cache-files-dir)" 
116117
117118      - name : Cache composer dependencies 
118-         uses : actions/cache@v3  
119+         uses : actions/cache@v4  
119120        with :
120121          path : ${{ steps.composer-cache.outputs.dir }} 
121122          key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} 
@@ -143,21 +144,23 @@ jobs:
143144          id : setup-php 
144145          uses : shivammathur/setup-php@v2  # https://github.com/shivammathur/setup-php
145146          with :
146-             php-version : ' 8.2' 
147+             #  Should be the higest supported version, so we can use the newest tools
148+             php-version : ' 8.4' 
147149            tools : composer:v2 
148-             extensions : mbstring, xml 
150+             #  optional performance gain for psalm: opcache
151+             extensions : mbstring, opcache, xml 
149152
150153        - name : Setup problem matchers for PHP 
151154          run : echo "::add-matcher::${{ runner.tool_cache }}/php.json" 
152155
153-         - uses : actions/checkout@v3  
156+         - uses : actions/checkout@v4  
154157
155158        - name : Get composer cache directory 
156159          id : composer-cache 
157160          run : echo "::set-output name=dir::$(composer config cache-files-dir)" 
158161
159162        - name : Cache composer dependencies 
160-           uses : actions/cache@v3  
163+           uses : actions/cache@v4  
161164          with :
162165            path : ${{ steps.composer-cache.outputs.dir }} 
163166            key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} 
@@ -166,7 +169,7 @@ jobs:
166169        - name : Install Composer dependencies 
167170          run : composer install --no-progress --prefer-dist --optimize-autoloader 
168171
169-         - uses : actions/download-artifact@v3  
172+         - uses : actions/download-artifact@v4  
170173          with :
171174            name : build-data 
172175            path : ${{ github.workspace }}/build 
0 commit comments