1
- # CI workflow adapted from https://github.com/cakephp/cakephp/blob/master/.github/workflows/ci.yml
2
1
name : CI
3
2
4
3
on :
5
4
push :
6
-
5
+
7
6
pull_request :
8
7
branches :
9
8
- ' *'
@@ -15,108 +14,107 @@ jobs:
15
14
fail-fast : false
16
15
matrix :
17
16
php-version : ['8.1', '8.2', '8.3']
18
- db-type : [' sqlite', ' mysql', ' pgsql' ]
17
+ db-type : [sqlite, mysql, pgsql]
19
18
prefer-lowest : ['']
20
19
21
20
steps :
22
- - name : Setup MySQL latest
23
- if : matrix.db-type == 'mysql'
24
- run : docker run --rm --name=mysqld -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=cakephp -p 3306:3306 -d mysql --default-authentication-plugin=mysql_native_password --disable-log-bin
25
-
26
- - name : Setup PostgreSQL latest
27
- if : matrix.db-type == 'pgsql'
28
- run : docker run --rm --name=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=cakephp -p 5432:5432 -d postgres
29
-
30
- - uses : actions/checkout@v2
31
-
32
- - name : Setup PHP
33
- uses : shivammathur/setup-php@v2
34
- with :
35
- php-version : ${{ matrix.php-version }}
36
- extensions : mbstring, intl, apcu, memcached, redis, sqlite, pdo_sqlite, pdo_${{ matrix.db-type }}
37
- ini-values : apc.enable_cli = 1
38
- coverage : pcov
39
-
40
- - name : Get composer cache directory
41
- id : composer-cache
42
- run : echo "::set-output name=dir::$(composer config cache-files-dir)"
43
-
44
- - name : Get date part for cache key
45
- id : key-date
46
- run : echo "::set-output name=date::$(date +'%Y-%m')"
47
-
48
- - name : Cache composer dependencies
49
- uses : actions/cache@v1
50
- with :
51
- path : ${{ steps.composer-cache.outputs.dir }}
52
- key : ${{ runner.os }}-composer-${{ steps.key-date.outputs.date }}-${{ hashFiles('composer.json') }}-${{ matrix.prefer-lowest }}
53
-
54
- - name : Composer install
55
- run : |
56
- if ${{ matrix.prefer-lowest == 'prefer-lowest' }}; then
57
- composer update --prefer-lowest --prefer-stable
58
- else
59
- composer update
60
- fi
61
-
62
- - name : Setup problem matchers for PHPUnit
63
- if : matrix.php-version == '8.1' && matrix.db-type == 'mysql'
64
- run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
65
-
66
- - name : Run PHPUnit
67
- run : |
68
- if [[ ${{ matrix.db-type }} == 'sqlite' ]]; then export DB_URL='sqlite:///:memory:'; fi
69
- if [[ ${{ matrix.db-type }} == 'mysql' ]]; then export DB_URL='mysql://root:[email protected] /cakephp?encoding=utf8'; fi
70
- if [[ ${{ matrix.db-type }} == 'pgsql' ]]; then export DB_URL='postgres://postgres:[email protected] /postgres'; fi
71
- if [[ ${{ matrix.php-version }} == '8.1' ]]; then
72
- export CODECOVERAGE=1 && vendor/bin/phpunit --display-deprecations --display-incomplete --display-skipped --coverage-clover=coverage.xml
73
- else
74
- vendor/bin/phpunit
75
- fi
76
-
77
- - name : Submit code coverage
78
- if : matrix.php-version == '8.1'
79
- uses : codecov/codecov-action@v1
21
+ - name : Setup MySQL latest
22
+ if : matrix.db-type == 'mysql'
23
+ run : docker run --rm --name=mysqld -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=cakephp -p 3306:3306 -d mysql --default-authentication-plugin=mysql_native_password --disable-log-bin
24
+
25
+ - name : Setup PostgreSQL latest
26
+ if : matrix.db-type == 'pgsql'
27
+ run : docker run --rm --name=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=cakephp -p 5432:5432 -d postgres
28
+
29
+ - uses : actions/checkout@v2
30
+
31
+ - name : Setup PHP
32
+ uses : shivammathur/setup-php@v2
33
+ with :
34
+ php-version : ${{ matrix.php-version }}
35
+ extensions : mbstring, intl, apcu, sqlite, pdo_sqlite, pdo_${{ matrix.db-type }}, ${{ matrix.db-type }}
36
+ ini-values : apc.enable_cli = 1
37
+ coverage : pcov
38
+
39
+ - name : Get composer cache directory
40
+ id : composer-cache
41
+ run : echo "::set-output name=dir::$(composer config cache-files-dir)"
42
+
43
+ - name : Get date part for cache key
44
+ id : key-date
45
+ run : echo "::set-output name=date::$(date +'%Y-%m')"
46
+
47
+ - name : Cache composer dependencies
48
+ uses : actions/cache@v1
49
+ with :
50
+ path : ${{ steps.composer-cache.outputs.dir }}
51
+ key : ${{ runner.os }}-composer-${{ steps.key-date.outputs.date }}-${{ hashFiles('composer.json') }}-${{ matrix.prefer-lowest }}
52
+
53
+ - name : composer install
54
+ run : |
55
+ if ${{ matrix.prefer-lowest == 'prefer-lowest' }}; then
56
+ composer update --prefer-lowest --prefer-stable
57
+ else
58
+ composer update
59
+ fi
60
+
61
+ - name : Setup problem matchers for PHPUnit
62
+ if : matrix.php-version == '8.1' && matrix.db-type == 'mysql'
63
+ run : echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
64
+
65
+ - name : Run PHPUnit
66
+ run : |
67
+ if [[ ${{ matrix.db-type }} == 'sqlite' ]]; then export DB_URL='sqlite:///:memory:'; fi
68
+ if [[ ${{ matrix.db-type }} == 'mysql' ]]; then export DB_URL='mysql://root:[email protected] /cakephp?encoding=utf8'; fi
69
+ if [[ ${{ matrix.db-type }} == 'pgsql' ]]; then export DB_URL='postgres://postgres:[email protected] /postgres'; fi
70
+ if [[ ${{ matrix.php-version }} == '8.1' ]]; then
71
+ export CODECOVERAGE=1 && vendor/bin/phpunit --display-deprecations --display-incomplete --display-skipped --coverage-clover=coverage.xml
72
+ else
73
+ vendor/bin/phpunit
74
+ fi
75
+
76
+ - name : Submit code coverage
77
+ if : matrix.php-version == '8.1'
78
+ uses : codecov/codecov-action@v1
80
79
81
80
cs-stan :
82
81
name : Coding Standard & Static Analysis
83
82
runs-on : ubuntu-22.04
84
83
85
84
steps :
86
- - uses : actions/checkout@v2
87
-
88
- - name : Setup PHP
89
- uses : shivammathur/setup-php@v2
90
- with :
91
- php-version : ' 8.1'
92
- extensions : mbstring, intl, apcu, memcached, redis
93
- tools : cs2pr
94
- coverage : none
95
-
96
- - name : Get composer cache directory
97
- id : composer-cache
98
- run : echo "::set-output name=dir::$(composer config cache-files-dir)"
99
-
100
- - name : Get date part for cache key
101
- id : key-date
102
- run : echo "::set-output name=date::$(date +'%Y-%m')"
103
-
104
- - name : Cache composer dependencies
105
- uses : actions/cache@v1
106
- with :
107
- path : ${{ steps.composer-cache.outputs.dir }}
108
- key : ${{ runner.os }}-composer-${{ steps.key-date.outputs.date }}-${{ hashFiles('composer.json') }}-${{ matrix.prefer-lowest }}
109
-
110
- - name : composer install
111
- run : composer stan-setup
112
-
113
- - name : Run PHP CodeSniffer
114
- run : composer cs-check
115
-
116
- - name : Run psalm
117
- if : success() || failure()
118
- run : composer psalm
119
-
120
- - name : Run phpstan
121
- if : success() || failure()
122
- run : composer stan
85
+ - uses : actions/checkout@v2
86
+
87
+ - name : Setup PHP
88
+ uses : shivammathur/setup-php@v2
89
+ with :
90
+ php-version : ' 8.1'
91
+ extensions : mbstring, intl, apcu
92
+ coverage : none
93
+
94
+ - name : Get composer cache directory
95
+ id : composer-cache
96
+ run : echo "::set-output name=dir::$(composer config cache-files-dir)"
97
+
98
+ - name : Get date part for cache key
99
+ id : key-date
100
+ run : echo "::set-output name=date::$(date +'%Y-%m')"
101
+
102
+ - name : Cache composer dependencies
103
+ uses : actions/cache@v1
104
+ with :
105
+ path : ${{ steps.composer-cache.outputs.dir }}
106
+ key : ${{ runner.os }}-composer-${{ steps.key-date.outputs.date }}-${{ hashFiles('composer.json') }}-${{ matrix.prefer-lowest }}
107
+
108
+ - name : composer install
109
+ run : composer stan-setup
110
+
111
+ - name : Run PHP CodeSniffer
112
+ run : composer cs-check
113
+
114
+ # - name: Run psalm
115
+ # if: success() || failure()
116
+ # run: vendor/bin/psalm.phar --output-format=github
117
+
118
+ - name : Run phpstan
119
+ if : success() || failure()
120
+ run : composer stan
0 commit comments