66 - ' .github/workflows/mssql.yml'
77 - ' composer.json'
88 - ' phpunit.xml.dist'
9-
109 push :
1110 branches : ['master']
1211 paths :
1514 - ' .github/workflows/mssql.yml'
1615 - ' composer.json'
1716 - ' phpunit.xml.dist'
18-
1917name : mssql
20-
2118jobs :
2219 tests :
20+ permissions :
21+ contents : read
22+ pull-requests : write
2323 name : PHP ${{ matrix.php }}-mssql-${{ matrix.mssql.server }}
24-
2524 env :
2625 extensions : pdo, pdo_sqlsrv-5.12
27-
2826 runs-on : ${{ matrix.mssql.os || 'ubuntu-latest' }}
29-
3027 strategy :
3128 matrix :
3229 php :
@@ -35,23 +32,19 @@ jobs:
3532 - 8.3
3633 - 8.4
3734 - 8.5
38-
3935 mssql :
36+ - server : 2017-latest
37+ odbc-version : 17
38+ flag : " "
39+ tools-path : " /opt/mssql-tools"
40+ - server : 2019-latest
41+ odbc-version : 18
42+ flag : " -C"
43+ tools-path : " /opt/mssql-tools18"
4044 - server : 2022-latest
4145 odbc-version : 18
4246 flag : " -C"
43-
44- include :
45- - php : 8.3
46- mssql :
47- server : 2017-latest
48- os : ubuntu-20.04
49- - php : 8.3
50- mssql :
51- server : 2019-latest
52- odbc-version : 18
53- flag : " -C"
54-
47+ tools-path : " /opt/mssql-tools18"
5548 services :
5649 mssql :
5750 image : mcr.microsoft.com/mssql/server:${{ matrix.mssql.server }}
@@ -61,20 +54,18 @@ jobs:
6154 MSSQL_PID : Developer
6255 ports :
6356 - 1433:1433
64- 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
65-
57+ options : --name=mssql --health-cmd="${{ matrix.mssql.tools-path }}/bin/sqlcmd ${{ matrix.mssql.flag }} -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'SELECT 1'" --health-interval=10s --health-timeout=5s --health-retries=3
6658 steps :
6759 - name : Install ODBC driver.
6860 run : |
69- sudo curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
70- sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18
71-
61+ curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /usr/share/keyrings/microsoft-prod.gpg > /dev/null
62+ curl -fsSL https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
63+ sudo apt-get update
64+ sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 || sudo ACCEPT_EULA=Y apt-get install -y msodbcsql17
7265 - name : Checkout
73- uses : actions/checkout@v3
74-
66+ uses : actions/checkout@v6
7567 - name : Create MS SQL Database
76- 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'
77-
68+ run : docker exec -i mssql ${{ matrix.mssql.tools-path }}/bin/sqlcmd ${{ matrix.mssql.flag }} -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'CREATE DATABASE yiitest'
7869 - name : Install PHP with extensions
7970 uses : shivammathur/setup-php@v2
8071 with :
@@ -83,24 +74,19 @@ jobs:
8374 ini-values : date.timezone='UTC'
8475 coverage : pcov
8576 tools : composer:v2, pecl
86-
8777 - name : Determine composer cache directory
8878 run : echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
89-
9079 - name : Cache dependencies installed with composer
9180 uses : actions/cache@v4
9281 with :
9382 path : ${{ env.COMPOSER_CACHE_DIR }}
9483 key : php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }}
9584 restore-keys : |
9685 php${{ matrix.php }}-composer-
97-
9886 - name : Update composer
9987 run : composer self-update
100-
10188 - name : Install dependencies with composer
10289 run : composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi
103-
10490 - name : Run tests with phpunit
10591 run : vendor/bin/phpunit --testsuite=Mssql --coverage-clover=coverage.xml --colors=always
10692 env :
11096 CYCLE_MSSQL_PORT : 1433
11197 CYCLE_MSSQL_USER : SA
11298 CYCLE_MSSQL_PASSWORD : YourStrong!Passw0rd
113-
11499 - name : Upload coverage to Codecov
115100 uses : codecov/codecov-action@v3
116101 with :
117102 token : ${{ secrets.CODECOV_TOKEN }}
118- files : ./coverage.xml
103+ files : ./coverage.xml
0 commit comments