7
7
- cron : ' 0 0 1,16 * *'
8
8
9
9
jobs :
10
- tests :
11
- name : P:${{ matrix.php }}, S:${{ matrix.symfony }}, D:${{ matrix.database }}, PU:${{ matrix.phpunit }}${{ matrix.deps == 'lowest' && ' (lowest)' || '' }}${{ matrix.use-phpunit-extension == 1 && ' (phpunit extension)' || '' }}
12
- runs-on : ubuntu-latest
13
- strategy :
14
- fail-fast : false
15
- matrix :
16
- php : [ 8.2, 8.3, 8.4 ]
17
- symfony : [ 6.4.*, 7.1.*, 7.2.* ]
18
- database : [ mysql|mongo ]
19
- phpunit : [ 11, 12 ]
20
-
21
- # default values:
22
- # deps: [ highest ]
23
- # use-phpunit-extension: [ 0 ]
24
-
25
- exclude :
26
- - {php: 8.2, phpunit: 12}
27
- - {php: 8.3, phpunit: 11}
28
- - {php: 8.4, phpunit: 11}
29
-
30
- include :
31
- # php 8.1
32
- - {php: 8.1, symfony: 6.4.*, phpunit: 9, database: mysql}
33
-
34
- # old PHPUnit versions
35
- - {php: 8.3, symfony: '*', phpunit: 9, database: mysql}
36
- - {php: 8.4, symfony: '*', phpunit: 10, database: mysql}
37
- - {php: 8.4, symfony: '*', phpunit: 11, database: mysql}
38
-
39
- # test with no database (PHPUnit 9 is used to prevent some problems with empty data providers)
40
- - {php: 8.3, symfony: '*', phpunit: 9, database: none}
41
- - {php: 8.3, symfony: '*', phpunit: 9, database: none, deps: lowest}
42
-
43
- # One permutation per DBMS
44
- - {php: 8.4, symfony: '*', phpunit: 12, database: mongo}
45
- - {php: 8.4, symfony: '*', phpunit: 12, database: pgsql}
46
- - {php: 8.4, symfony: '*', phpunit: 12, database: sqlite}
47
- - {php: 8.4, symfony: '*', phpunit: 12, database: mysql}
48
-
49
- # lowest deps (one per DBMS)
50
- - {php: 8.3, symfony: '*', phpunit: 9, database: mysql|mongo, deps: lowest}
51
- - {php: 8.3, symfony: '*', phpunit: 9, database: mongo, deps: lowest}
52
- - {php: 8.3, symfony: '*', phpunit: 9, database: pgsql, deps: lowest}
53
- - {php: 8.3, symfony: '*', phpunit: 9, database: sqlite, deps: lowest}
54
- - {php: 8.3, symfony: '*', phpunit: 9, database: mysql, deps: lowest}
55
-
56
- # using Foundry's PHPUnit extension
57
- - {php: 8.4, symfony: '*', phpunit: 12, database: mysql|mongo, use-phpunit-extension: 1}
58
- env :
59
- DATABASE_URL : ${{ contains(matrix.database, 'mysql') && 'mysql://root:root@localhost:3306/foundry?serverVersion=5.7.42' || contains(matrix.database, 'pgsql') && 'postgresql://root:root@localhost:5432/foundry?serverVersion=15' || contains(matrix.database, 'sqlite') && 'sqlite:///%kernel.project_dir%/var/data.db' || '' }}
60
- MONGO_URL : ${{ contains(matrix.database, 'mongo') && 'mongodb://127.0.0.1:27017/dbName?compressors=disabled&gssapiServiceName=mongodb' || '' }}
61
- USE_DAMA_DOCTRINE_TEST_BUNDLE : ${{ contains(matrix.database, 'sql') && 1 || 0 }}
62
- USE_FOUNDRY_PHPUNIT_EXTENSION : ${{ matrix.use-phpunit-extension || 0 }}
63
- PHPUNIT_VERSION : ${{ matrix.phpunit }}
64
- services :
65
- postgres :
66
- image : ${{ contains(matrix.database, 'pgsql') && 'postgres:15' || '' }}
67
- env :
68
- POSTGRES_USER : root
69
- POSTGRES_PASSWORD : root
70
- POSTGRES_DB : foundry
71
- ports :
72
- - 5432:5432
73
- options : >-
74
- --health-cmd pg_isready
75
- --health-interval 10s
76
- --health-timeout 5s
77
- --health-retries 5
78
- mongo :
79
- image : ${{ contains(matrix.database, 'mongo') && 'mongo:4' || '' }}
80
- ports :
81
- - 27017:27017
82
- steps :
83
- - name : Checkout code
84
- uses : actions/checkout@v3
85
-
86
- - name : Setup PHP
87
- uses : shivammathur/setup-php@v2
88
- with :
89
- php-version : ${{ matrix.php }}
90
- coverage : none
91
- tools : flex
92
-
93
- - name : Install dependencies
94
- uses : ramsey/composer-install@v2
95
- with :
96
- dependency-versions : ${{ matrix.deps }}
97
- composer-options : --prefer-dist
98
- env :
99
- SYMFONY_REQUIRE : ${{ matrix.symfony }}
100
-
101
- - name : Set up MySQL
102
- if : contains(matrix.database, 'mysql')
103
- run : sudo /etc/init.d/mysql start
104
-
105
- - name : Test
106
- run : ./phpunit
107
- shell : bash
10
+ # tests:
11
+ # name: P:${{ matrix.php }}, S:${{ matrix.symfony }}, D:${{ matrix.database }}, PU:${{ matrix.phpunit }}${{ matrix.deps == 'lowest' && ' (lowest)' || '' }}${{ matrix.use-phpunit-extension == 1 && ' (phpunit extension)' || '' }}
12
+ # runs-on: ubuntu-latest
13
+ # strategy:
14
+ # fail-fast: false
15
+ # matrix:
16
+ # php: [ 8.2, 8.3, 8.4 ]
17
+ # symfony: [ 6.4.*, 7.1.*, 7.2.* ]
18
+ # database: [ mysql|mongo ]
19
+ # phpunit: [ 11, 12 ]
20
+ #
21
+ # # default values:
22
+ # # deps: [ highest ]
23
+ # # use-phpunit-extension: [ 0 ]
24
+ #
25
+ # exclude:
26
+ # - {php: 8.2, phpunit: 12}
27
+ # - {php: 8.3, phpunit: 11}
28
+ # - {php: 8.4, phpunit: 11}
29
+ #
30
+ # include:
31
+ # # php 8.1
32
+ # - {php: 8.1, symfony: 6.4.*, phpunit: 9, database: mysql}
33
+ #
34
+ # # old PHPUnit versions
35
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: mysql}
36
+ # - {php: 8.4, symfony: '*', phpunit: 10, database: mysql}
37
+ # - {php: 8.4, symfony: '*', phpunit: 11, database: mysql}
38
+ #
39
+ # # test with no database (PHPUnit 9 is used to prevent some problems with empty data providers)
40
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: none}
41
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: none, deps: lowest}
42
+ #
43
+ # # One permutation per DBMS
44
+ # - {php: 8.4, symfony: '*', phpunit: 12, database: mongo}
45
+ # - {php: 8.4, symfony: '*', phpunit: 12, database: pgsql}
46
+ # - {php: 8.4, symfony: '*', phpunit: 12, database: sqlite}
47
+ # - {php: 8.4, symfony: '*', phpunit: 12, database: mysql}
48
+ #
49
+ # # lowest deps (one per DBMS)
50
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: mysql|mongo, deps: lowest}
51
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: mongo, deps: lowest}
52
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: pgsql, deps: lowest}
53
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: sqlite, deps: lowest}
54
+ # - {php: 8.3, symfony: '*', phpunit: 9, database: mysql, deps: lowest}
55
+ #
56
+ # # using Foundry's PHPUnit extension
57
+ # - {php: 8.4, symfony: '*', phpunit: 12, database: mysql|mongo, use-phpunit-extension: 1}
58
+ # env:
59
+ # DATABASE_URL: ${{ contains(matrix.database, 'mysql') && 'mysql://root:root@localhost:3306/foundry?serverVersion=5.7.42' || contains(matrix.database, 'pgsql') && 'postgresql://root:root@localhost:5432/foundry?serverVersion=15' || contains(matrix.database, 'sqlite') && 'sqlite:///%kernel.project_dir%/var/data.db' || '' }}
60
+ # MONGO_URL: ${{ contains(matrix.database, 'mongo') && 'mongodb://127.0.0.1:27017/dbName?compressors=disabled&gssapiServiceName=mongodb' || '' }}
61
+ # USE_DAMA_DOCTRINE_TEST_BUNDLE: ${{ contains(matrix.database, 'sql') && 1 || 0 }}
62
+ # USE_FOUNDRY_PHPUNIT_EXTENSION: ${{ matrix.use-phpunit-extension || 0 }}
63
+ # PHPUNIT_VERSION: ${{ matrix.phpunit }}
64
+ # services:
65
+ # postgres:
66
+ # image: ${{ contains(matrix.database, 'pgsql') && 'postgres:15' || '' }}
67
+ # env:
68
+ # POSTGRES_USER: root
69
+ # POSTGRES_PASSWORD: root
70
+ # POSTGRES_DB: foundry
71
+ # ports:
72
+ # - 5432:5432
73
+ # options: >-
74
+ # --health-cmd pg_isready
75
+ # --health-interval 10s
76
+ # --health-timeout 5s
77
+ # --health-retries 5
78
+ # mongo:
79
+ # image: ${{ contains(matrix.database, 'mongo') && 'mongo:4' || '' }}
80
+ # ports:
81
+ # - 27017:27017
82
+ # steps:
83
+ # - name: Checkout code
84
+ # uses: actions/checkout@v3
85
+ #
86
+ # - name: Setup PHP
87
+ # uses: shivammathur/setup-php@v2
88
+ # with:
89
+ # php-version: ${{ matrix.php }}
90
+ # coverage: none
91
+ # tools: flex
92
+ #
93
+ # - name: Install dependencies
94
+ # uses: ramsey/composer-install@v2
95
+ # with:
96
+ # dependency-versions: ${{ matrix.deps }}
97
+ # composer-options: --prefer-dist
98
+ # env:
99
+ # SYMFONY_REQUIRE: ${{ matrix.symfony }}
100
+ #
101
+ # - name: Set up MySQL
102
+ # if: contains(matrix.database, 'mysql')
103
+ # run: sudo /etc/init.d/mysql start
104
+ #
105
+ # - name: Test
106
+ # run: ./phpunit
107
+ # shell: bash
108
108
109
109
test-reset-database :
110
110
name : Reset DB - D:${{ matrix.database }} ${{ matrix.use-dama == 1 && ' (dama)' || '' }} ${{ matrix.reset-database-mode == 'migrate' && ' (migrate)' || '' }} ${{ contains(matrix.with-migration-configuration-file, 'transactional') && '(configuration file transactional)' || contains(matrix.with-migration-configuration-file, 'configuration') && '(configuration file)' || '' }}${{ matrix.deps == 'lowest' && ' (lowest)' || '' }}
@@ -115,18 +115,24 @@ jobs:
115
115
database : [ mysql, pgsql, sqlite, mysql|mongo ]
116
116
use-dama : [ 0, 1 ]
117
117
reset-database-mode : [ schema, migrate ]
118
- migration-configuration-file : ['no ']
118
+ migration-configuration-file : ['[] ']
119
119
deps : [ highest, lowest ]
120
120
include :
121
- - { database: mongo, migration-configuration-file: 'no', use-dama: 0, reset-database-mode: schema }
122
- - { database: pgsql, migration-configuration-file: 'migration-configuration', use-dama: 0, reset-database-mode: migration }
123
- - { database: pgsql, migration-configuration-file: 'migration-configuration-transactional', use-dama: 0, reset-database-mode: migration }
121
+ - { database: mongo, migration-configuration-file: '[]', use-dama: 0, reset-database-mode: schema }
122
+ - { database: pgsql, migration-configuration-file: '["tests/Fixture/ResetDatabase/migration-configs/migration-configuration.php"]', use-dama: 0, reset-database-mode: migrate }
123
+ - { database: pgsql, migration-configuration-file: '["tests/Fixture/ResetDatabase/migration-configs/migration-configuration-transactional.php"]', use-dama: 0, reset-database-mode: migrate }
124
+ -
125
+ database : pgsql
126
+ use-dama : 0
127
+ reset-database-mode : migrate
128
+ migration-configuration-file : ' ["tests/Fixture/ResetDatabase/migration-configs/migration-configuration-transactional.php", "tests/Fixture/ResetDatabase/migration-configs/migration-dummy.php"]'
129
+ deps : highest
124
130
env :
125
131
DATABASE_URL : ${{ contains(matrix.database, 'mysql') && 'mysql://root:root@localhost:3306/foundry?serverVersion=5.7.42' || contains(matrix.database, 'pgsql') && 'postgresql://root:root@localhost:5432/foundry?serverVersion=15' || 'sqlite:///%kernel.project_dir%/var/data.db' }}
126
132
MONGO_URL : ${{ contains(matrix.database, 'mongo') && 'mongodb://127.0.0.1:27017/dbName?compressors=disabled&gssapiServiceName=mongodb' || '' }}
127
133
USE_DAMA_DOCTRINE_TEST_BUNDLE : ${{ matrix.use-dama == 1 && 1 || 0 }}
128
- DATABASE_RESET_MODE : ${{ matrix.reset-database-mode == 1 && 1 || 0 }}
129
- MIGRATION_CONFIGURATION_FILE : ${{ matrix.migration-configuration-file == 'no' && '' || format('tests/Fixture/MigrationTests/configs/{0}.php', matrix.migration-configuration-file) }}
134
+ DATABASE_RESET_MODE : ${{ matrix.reset-database-mode }}
135
+ MIGRATION_CONFIGURATION_FILES : ${{ matrix.migration-configuration-file }}
130
136
PHPUNIT_VERSION : 11
131
137
services :
132
138
postgres :
@@ -163,7 +169,7 @@ jobs:
163
169
dependency-versions : ${{ matrix.deps }}
164
170
composer-options : --prefer-dist
165
171
env :
166
- SYMFONY_REQUIRE : 7.1 .*
172
+ SYMFONY_REQUIRE : 7.2 .*
167
173
168
174
- name : Set up MySQL
169
175
if : contains(matrix.database, 'mysql')
@@ -175,7 +181,7 @@ jobs:
175
181
176
182
# We should be able to run the tests twice in order to check if the second run also starts from a fresh db
177
183
# some bugs could be detected this way
178
- ./phpunit --testsuite reset-database --bootstrap tests/bootstrap-reset-database.php
184
+ DATABASE_GENERATE_MIGRATIONS=0 ./phpunit --testsuite reset-database --bootstrap tests/bootstrap-reset-database.php
179
185
shell : bash
180
186
181
187
test-with-paratest :
0 commit comments