xref: /dokuwiki/.github/workflows/testLinux.yml (revision 4f50091d242c440052709a105dd6251440b6bc2f)
1name: Linux Unit Tests
2
3on:
4  push:
5    branches-ignore:
6      - stable
7      - old-stable
8  pull_request:
9
10concurrency:
11  group: ${{ github.workflow }}-${{ github.ref }}
12  cancel-in-progress: true
13
14permissions:
15  contents: read  #  to fetch code (actions/checkout)
16
17jobs:
18    run:
19        name: PHP ${{ matrix.php-versions }}
20        runs-on: ubuntu-latest
21        if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository
22
23        strategy:
24            matrix:
25                php-versions: ['7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5']
26            fail-fast: false
27
28        services:
29            mysql:
30                image: mysql:5.7
31                env:
32                    MYSQL_ALLOW_EMPTY_PASSWORD: yes
33                ports:
34                    - 3306:3306
35            postgres:
36                image: postgres:latest
37                env:
38                    POSTGRES_PASSWORD: postgres
39                ports:
40                    - 5432:5432
41            squid:
42              image: ubuntu/squid
43              ports:
44                    - 3128:3128
45        steps:
46            - name: Checkout
47              uses: actions/checkout@v4
48
49            - name: Setup PHP
50              uses: shivammathur/setup-php@v2
51              with:
52                  php-version: ${{ matrix.php-versions }}
53                  extensions: mbstring, intl, PDO, pdo_sqlite, pdo_mysql, pdo_pgsql, bz2
54                  ini-values: pcre.jit=0
55
56            - name: Setup problem matchers
57              run: |
58                echo ::add-matcher::${{ runner.tool_cache }}/php.json
59                echo ::add-matcher::${{ runner.tool_cache }}/phpunit.json
60
61            - name: Setup PHPUnit
62              run: |
63                  cd _test
64                  composer install --no-interaction --no-progress --no-suggest --prefer-dist
65                  cp mysql.conf.php.dist mysql.conf.php
66                  cp pgsql.conf.php.dist pgsql.conf.php
67                  cp proxy.conf.php.dist proxy.conf.php
68
69            - name: Run PHPUnit
70              run: |
71                cd _test
72                composer run test
73