Skip to content

Commit 8e09b3c

Browse files
authored
Merge pull request #16 from roxblnfk/hotfix/github-actions
Update GitHub actions
2 parents 4c2cc26 + 1161c1a commit 8e09b3c

3 files changed

Lines changed: 41 additions & 162 deletions

File tree

.github/workflows/main.yml

Lines changed: 5 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ jobs:
2424
run: vendor/bin/spiral-cs check src tests
2525
test:
2626
needs: lint
27-
name: Test PHP ${{ matrix.php-versions }}
27+
name: Test PHP ${{ matrix.php-versions }} with Code Coverage
2828
runs-on: ubuntu-latest
2929
strategy:
3030
matrix:
31-
php-versions: ['7.2', '7.3', '7.4']
31+
php-versions: ['7.2', '7.3', '7.4', '8.0']
3232
steps:
3333
- name: Checkout
3434
uses: actions/checkout@v2
@@ -38,18 +38,12 @@ jobs:
3838
docker-compose up -d
3939
cd ..
4040
- name: Setup PHP ${{ matrix.php-versions }}
41-
uses: shivammathur/setup-php@v1
41+
uses: shivammathur/setup-php@v2
4242
with:
4343
php-version: ${{ matrix.php-versions }}
4444
coverage: pcov
4545
tools: pecl
46-
extensions: mbstring, pdo, pdo_sqlsrv
47-
- name: Install MS SQL Server deps
48-
run: |
49-
bash ./tests/install-sqlsrv.sh
50-
sudo sed -i.bak '/^extension="pdo_sqlsrv.so"/d' /etc/php/${{ matrix.php-versions }}/cli/php.ini
51-
sudo bash -c 'printf "; priority=30\nextension=pdo_sqlsrv.so\n" > /etc/php/${{ matrix.php-versions }}/mods-available/pdo_sqlsrv.ini'
52-
sudo phpenmod -s cli -v ${{ matrix.php-versions }} pdo_sqlsrv
46+
extensions: mbstring, pdo, pdo_sqlite, pdo_pgsql, pdo_sqlsrv, pdo_mysql
5347
- name: Get Composer Cache Directory
5448
id: composer-cache
5549
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
@@ -65,91 +59,8 @@ jobs:
6559
run: |
6660
vendor/bin/phpunit --coverage-clover=coverage.xml
6761
- name: Upload coverage to Codecov
62+
continue-on-error: true # if is fork
6863
uses: codecov/codecov-action@v1
6964
with:
7065
token: ${{ secrets.CODECOV_TOKEN }}
7166
file: ./coverage.xml
72-
test_postgres:
73-
needs: lint
74-
name: Test PostgreSQL ${{ matrix.configs.postgres-version }}
75-
runs-on: ubuntu-latest
76-
strategy:
77-
matrix:
78-
configs: [
79-
{php-version: 7.2, postgres-version: 9.6},
80-
{php-version: 7.3, postgres-version: 10},
81-
{php-version: 7.3, postgres-version: 11}
82-
]
83-
services:
84-
postgres:
85-
image: postgres:${{ matrix.configs.postgres-version }}
86-
ports:
87-
- 5432:5432
88-
env:
89-
POSTGRES_USER: postgres
90-
POSTGRES_PASSWORD: postgres
91-
POSTGRES_DB: spiral
92-
options: --health-cmd="pg_isready" --health-interval=10s --health-timeout=5s --health-retries=3
93-
steps:
94-
- name: Checkout
95-
uses: actions/checkout@v2
96-
- name: Setup PHP ${{ matrix.configs.php-version }}
97-
run: sudo update-alternatives --set php /usr/bin/php${{ matrix.configs.php-version }}
98-
- name: Get Composer Cache Directory
99-
id: composer-cache
100-
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
101-
- name: Restore Composer Cache
102-
uses: actions/cache@v1
103-
with:
104-
path: ${{ steps.composer-cache.outputs.dir }}
105-
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
106-
restore-keys: ${{ runner.os }}-composer-
107-
- name: Install Dependencies
108-
run: composer install --no-interaction --prefer-dist
109-
- name: Execute Tests
110-
env:
111-
DB: postgres
112-
POSTGRES: ${{ matrix.configs.postgres-version }}
113-
run: |
114-
vendor/bin/phpunit tests/Annotated/Driver/Postgres
115-
test_mariadb:
116-
needs: lint
117-
name: Test MariaDB ${{ matrix.configs.mariadb-version }}
118-
runs-on: ubuntu-latest
119-
strategy:
120-
matrix:
121-
configs: [
122-
# {php-version: 7.2, mariadb-version: 10.2},
123-
{php-version: 7.3, mariadb-version: 10.4}
124-
]
125-
services:
126-
mariadb:
127-
image: mariadb:${{ matrix.configs.mariadb-version }}
128-
ports:
129-
- 23306:3306
130-
env:
131-
MYSQL_ROOT_PASSWORD: root
132-
MYSQL_DATABASE: spiral
133-
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
134-
steps:
135-
- name: Checkout
136-
uses: actions/checkout@v2
137-
- name: Setup PHP ${{ matrix.configs.php-version }}
138-
run: sudo update-alternatives --set php /usr/bin/php${{ matrix.configs.php-version }}
139-
- name: Get Composer Cache Directory
140-
id: composer-cache
141-
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
142-
- name: Restore Composer Cache
143-
uses: actions/cache@v1
144-
with:
145-
path: ${{ steps.composer-cache.outputs.dir }}
146-
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
147-
restore-keys: ${{ runner.os }}-composer-
148-
- name: Install Dependencies
149-
run: composer install --no-interaction --prefer-dist
150-
- name: Execute Tests
151-
env:
152-
DB: mariadb
153-
MARIADB: ${{ matrix.configs.mariadb-version }}
154-
run: |
155-
vendor/bin/phpunit tests/Annotated/Driver/MySQL

tests/bootstrap.php

Lines changed: 32 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@
33
/**
44
* Spiral Framework, SpiralScout LLC.
55
*
6+
* @license MIT
67
* @author Anton Titov (Wolfy-J)
78
*/
89

910
declare(strict_types=1);
1011

1112
use Doctrine\Common\Annotations\AnnotationRegistry;
13+
use Spiral\Database;
1214

1315
error_reporting(E_ALL | E_STRICT);
1416
ini_set('display_errors', '1');
@@ -18,78 +20,43 @@
1820

1921
AnnotationRegistry::registerLoader('class_exists');
2022

21-
\Cycle\Annotated\Tests\BaseTest::$config = [
22-
'debug' => false,
23-
'strict' => true,
24-
'benchmark' => false,
23+
$drivers = [
2524
'sqlite' => [
26-
'driver' => \Spiral\Database\Driver\SQLite\SQLiteDriver::class,
27-
'check' => function () {
28-
return !in_array('sqlite', \PDO::getAvailableDrivers());
29-
},
30-
'conn' => 'sqlite::memory:',
31-
'user' => 'sqlite',
32-
'pass' => ''
25+
'driver' => Database\Driver\SQLite\SQLiteDriver::class,
26+
'conn' => 'sqlite::memory:',
27+
'user' => 'sqlite',
28+
'pass' => '',
29+
'queryCache' => 100
3330
],
3431
'mysql' => [
35-
'driver' => \Spiral\Database\Driver\MySQL\MySQLDriver::class,
36-
'check' => function () {
37-
return !in_array('mysql', \PDO::getAvailableDrivers());
38-
},
39-
'conn' => 'mysql:host=127.0.0.1:13306;dbname=spiral',
40-
'user' => 'root',
41-
'pass' => 'root'
32+
'driver' => Database\Driver\MySQL\MySQLDriver::class,
33+
'conn' => 'mysql:host=127.0.0.1:13306;dbname=spiral',
34+
'user' => 'root',
35+
'pass' => 'root',
36+
'queryCache' => 100
4237
],
4338
'postgres' => [
44-
'driver' => \Spiral\Database\Driver\Postgres\PostgresDriver::class,
45-
'check' => function () {
46-
return !in_array('pgsql', \PDO::getAvailableDrivers());
47-
},
48-
'conn' => 'pgsql:host=127.0.0.1;port=15432;dbname=spiral',
49-
'user' => 'postgres',
50-
'pass' => 'postgres'
39+
'driver' => Database\Driver\Postgres\PostgresDriver::class,
40+
'conn' => 'pgsql:host=127.0.0.1;port=15432;dbname=spiral',
41+
'user' => 'postgres',
42+
'pass' => 'postgres',
43+
'queryCache' => 100
5144
],
5245
'sqlserver' => [
53-
'driver' => \Spiral\Database\Driver\SQLServer\SQLServerDriver::class,
54-
'check' => function () {
55-
return !in_array('sqlsrv', \PDO::getAvailableDrivers());
56-
},
57-
'conn' => 'sqlsrv:Server=127.0.0.1,11433;Database=tempdb',
58-
'user' => 'sa',
59-
'pass' => 'SSpaSS__1'
46+
'driver' => Database\Driver\SQLServer\SQLServerDriver::class,
47+
'conn' => 'sqlsrv:Server=127.0.0.1,11433;Database=tempdb',
48+
'user' => 'SA',
49+
'pass' => 'SSpaSS__1',
50+
'queryCache' => 100
6051
],
6152
];
6253

63-
if (!empty(getenv('DB'))) {
64-
switch (getenv('DB')) {
65-
case 'postgres':
66-
\Cycle\Annotated\Tests\BaseTest::$config = [
67-
'debug' => false,
68-
'postgres' => [
69-
'driver' => \Spiral\Database\Driver\Postgres\PostgresDriver::class,
70-
'check' => function () {
71-
return true;
72-
},
73-
'conn' => 'pgsql:host=127.0.0.1;port=5432;dbname=spiral',
74-
'user' => 'postgres',
75-
'pass' => 'postgres',
76-
],
77-
];
78-
break;
79-
80-
case 'mariadb':
81-
\Cycle\Annotated\Tests\BaseTest::$config = [
82-
'debug' => false,
83-
'mysql' => [
84-
'driver' => \Spiral\Database\Driver\MySQL\MySQLDriver::class,
85-
'check' => function () {
86-
return true;
87-
},
88-
'conn' => 'mysql:host=127.0.0.1:23306;dbname=spiral',
89-
'user' => 'root',
90-
'pass' => 'root'
91-
],
92-
];
93-
break;
94-
}
95-
}
54+
$db = getenv('DB') ?: null;
55+
\Cycle\Annotated\Tests\BaseTest::$config = [
56+
'debug' => false,
57+
'strict' => true,
58+
'benchmark' => false,
59+
] + ($db === null
60+
? $drivers
61+
: array_intersect_key($drivers, array_flip((array)$db))
62+
);

tests/docker-compose.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ version: "3"
22

33
services:
44
sqlserver:
5-
image: microsoft/mssql-server-linux
5+
image: mcr.microsoft.com/mssql/server:2019-latest
6+
restart: always
67
ports:
78
- "11433:1433"
89
environment:
@@ -11,7 +12,7 @@ services:
1112

1213
mysql_latest:
1314
image: mysql:latest
14-
restart: 'always'
15+
restart: always
1516
command: --default-authentication-plugin=mysql_native_password
1617
ports:
1718
- "13306:3306"
@@ -28,4 +29,4 @@ services:
2829
environment:
2930
POSTGRES_DB: "spiral"
3031
POSTGRES_USER: "postgres"
31-
POSTGRES_PASSWORD: "postgres"
32+
POSTGRES_PASSWORD: "postgres"

0 commit comments

Comments
 (0)