summaryrefslogtreecommitdiff
path: root/.github/workflows/php-code-quality.yml
blob: 24d1aea6045e46016759f8a9a6ccfbdc42b7bb22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
name: PHP Code Quality

on:
  pull_request:
    paths:
    - '**.php'
    - 'phpstan.neon'
    - 'phpunit.xml'
  # Allow manual triggering
  workflow_dispatch:
  # Allow other workflows (e.g. Publish) to invoke this one.
  workflow_call:


env:
  fail-fast: true


permissions:
  contents: read


jobs:
  phpstan:
    name: PHPStan
    runs-on: ubuntu-latest

    steps:
    - name: Check out code
      uses: actions/checkout@v5

    - name: Set up PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: '8.4'
        coverage: none
        tools: phpstan

    - name: Run PHPStan
      run: vendor/bin/phpstan analyze --no-progress

  phpunit:
    name: PHPUnit
    runs-on: ubuntu-latest
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      fail-fast: false
      matrix:
        php: ['8.2', '8.3', '8.4']
        experimental: [false]
        include:
        - php: '8.5'
          experimental: true

    steps:
    - name: Check out code
      uses: actions/checkout@v5

    - name: Set up PHP ${{ matrix.php }}
      uses: shivammathur/setup-php@v2
      with:
        php-version: ${{ matrix.php }}
        coverage: none
        tools: phpunit

    - name: Run PHPUnit
      run: vendor/bin/phpunit --exclude integration --coverage-filter classes --coverage-filter include