Skip to content

Commit a7a5dc2

Browse files
committed
Update mssql.yml
1 parent 69d2e20 commit a7a5dc2

1 file changed

Lines changed: 56 additions & 43 deletions

File tree

.github/workflows/mssql.yml

Lines changed: 56 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,91 @@
11
on:
22
pull_request:
3-
paths-ignore:
4-
- 'docs/**'
5-
- 'README.md'
6-
- 'CHANGELOG.md'
7-
- '.gitignore'
8-
- '.gitattributes'
9-
- 'infection.json.dist'
10-
- 'psalm.xml'
3+
paths:
4+
- 'src/**'
5+
- 'tests/**'
6+
- '.github/workflows/mssql.yml'
7+
- 'composer.json'
8+
- 'phpunit.xml.dist'
119

1210
push:
1311
branches: ['master']
14-
paths-ignore:
15-
- 'docs/**'
16-
- 'README.md'
17-
- 'CHANGELOG.md'
18-
- '.gitignore'
19-
- '.gitattributes'
20-
- 'infection.json.dist'
21-
- 'psalm.xml'
12+
paths:
13+
- 'src/**'
14+
- 'tests/**'
15+
- '.github/workflows/mssql.yml'
16+
- 'composer.json'
17+
- 'phpunit.xml.dist'
2218

23-
name: mysql
19+
name: mssql
2420

2521
jobs:
2622
tests:
27-
name: PHP ${{ matrix.php }}-mysql-${{ matrix.mysql }}
23+
name: PHP ${{ matrix.php }}-mssql-${{ matrix.mssql.server }}
2824

2925
env:
30-
extensions: pdo, pdo_mysql
26+
extensions: pdo, pdo_sqlsrv-5.12
3127

32-
runs-on: ${{ matrix.os }}
28+
runs-on: ${{ matrix.mssql.os || 'ubuntu-latest' }}
3329

3430
strategy:
3531
matrix:
36-
os:
37-
- ubuntu-latest
38-
3932
php:
4033
- 8.3
4134
- 8.4
42-
43-
mysql:
44-
- 5.7
45-
- latest
35+
36+
mssql:
37+
- server: 2022-latest
38+
odbc-version: 18
39+
flag: "-C"
40+
41+
include:
42+
- php: 8.3
43+
mssql:
44+
server: 2017-latest
45+
os: ubuntu-20.04
46+
- php: 8.3
47+
mssql:
48+
server: 2019-latest
49+
odbc-version: 18
50+
flag: "-C"
4651

4752
services:
48-
mysql:
49-
image: mysql:${{ matrix.mysql }}
53+
mssql:
54+
image: mcr.microsoft.com/mssql/server:${{ matrix.mssql.server }}
5055
env:
51-
MYSQL_ALLOW_EMPTY_PASSWORD: true
52-
MYSQL_PASSWORD: ''
53-
MYSQL_DATABASE: yiitest
56+
SA_PASSWORD: YourStrong!Passw0rd
57+
ACCEPT_EULA: Y
58+
MSSQL_PID: Developer
5459
ports:
55-
- 3306:3306
56-
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
60+
- 1433:1433
61+
options: --name=mssql --health-cmd="/opt/mssql-tools${{ matrix.mssql.odbc-version }}/bin/sqlcmd ${{ matrix.mssql.flag }} -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'SELECT 1'" --health-interval=10s --health-timeout=5s --health-retries=3
5762

5863
steps:
64+
- name: Install ODBC driver.
65+
run: |
66+
sudo curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
67+
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
68+
5969
- name: Checkout
6070
uses: actions/checkout@v3
6171

72+
- name: Create MS SQL Database
73+
run: docker exec -i mssql /opt/mssql-tools${{ matrix.mssql.odbc-version }}/bin/sqlcmd ${{ matrix.mssql.flag }} -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'CREATE DATABASE yiitest'
74+
6275
- name: Install PHP with extensions
6376
uses: shivammathur/setup-php@v2
6477
with:
6578
php-version: ${{ matrix.php }}
6679
extensions: ${{ env.extensions }}
6780
ini-values: date.timezone='UTC'
6881
coverage: pcov
82+
tools: composer:v2, pecl
6983

7084
- name: Determine composer cache directory
71-
if: matrix.os == 'ubuntu-latest'
7285
run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
7386

7487
- name: Cache dependencies installed with composer
75-
uses: actions/cache@v3
88+
uses: actions/cache@v4
7689
with:
7790
path: ${{ env.COMPOSER_CACHE_DIR }}
7891
key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
@@ -86,17 +99,17 @@ jobs:
8699
run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi
87100

88101
- name: Run tests with phpunit
89-
run: vendor/bin/phpunit --testsuite Mysql --coverage-clover=coverage.xml --colors=always
102+
run: vendor/bin/phpunit --testsuite=Mssql --coverage-clover=coverage.xml --colors=always
90103
env:
91104
ENVIRONMENT: ci
92-
CYCLE_MYSQL_DATABASE: yiitest
93-
CYCLE_MYSQL_HOST: 127.0.0.1
94-
CYCLE_MYSQL_PORT: 3306
95-
CYCLE_MYSQL_USER: root
96-
CYCLE_MYSQL_PASSWORD: ''
105+
CYCLE_MSSQL_DATABASE: yiitest
106+
CYCLE_MSSQL_HOST: 127.0.0.1
107+
CYCLE_MSSQL_PORT: 1433
108+
CYCLE_MSSQL_USER: SA
109+
CYCLE_MSSQL_PASSWORD: YourStrong!Passw0rd
97110

98111
- name: Upload coverage to Codecov
99-
if: matrix.os == 'ubuntu-latest'
100112
uses: codecov/codecov-action@v3
101113
with:
114+
token: ${{ secrets.CODECOV_TOKEN }}
102115
files: ./coverage.xml

0 commit comments

Comments
 (0)