77 - cron : ' 0 0 1,16 * *'
88
99jobs :
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
108108
109109 test-reset-database :
110110 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:
115115 database : [ mysql, pgsql, sqlite, mysql|mongo ]
116116 use-dama : [ 0, 1 ]
117117 reset-database-mode : [ schema, migrate ]
118- migration-configuration-file : ['no ']
118+ migration-configuration-file : ['[] ']
119119 deps : [ highest, lowest ]
120120 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
124130 env :
125131 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' }}
126132 MONGO_URL : ${{ contains(matrix.database, 'mongo') && 'mongodb://127.0.0.1:27017/dbName?compressors=disabled&gssapiServiceName=mongodb' || '' }}
127133 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 }}
130136 PHPUNIT_VERSION : 11
131137 services :
132138 postgres :
@@ -163,7 +169,7 @@ jobs:
163169 dependency-versions : ${{ matrix.deps }}
164170 composer-options : --prefer-dist
165171 env :
166- SYMFONY_REQUIRE : 7.1 .*
172+ SYMFONY_REQUIRE : 7.2 .*
167173
168174 - name : Set up MySQL
169175 if : contains(matrix.database, 'mysql')
@@ -175,7 +181,7 @@ jobs:
175181
176182 # We should be able to run the tests twice in order to check if the second run also starts from a fresh db
177183 # 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
179185 shell : bash
180186
181187 test-with-paratest :
0 commit comments