Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 26 additions & 15 deletions .github/workflows/mssql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,44 +28,52 @@ concurrency:

jobs:
tests:
name: PHP ${{ matrix.php }}-mssql-${{ matrix.mssql }}
name: PHP ${{ matrix.php }}-mssql-${{ matrix.mssql.server }}

env:
extensions: pdo, pdo_sqlsrv-5.10.1
extensions: pdo, pdo_sqlsrv-5.12

runs-on: ${{ matrix.os }}
runs-on: ${{ matrix.mssql.os || 'ubuntu-latest' }}

strategy:
matrix:
os:
- ubuntu-latest

php:
- 8.0
- 8.1
- 8.2

mssql:
- server:2019-latest
- server:2022-latest
- server: 2022-latest
odbc-version: 18
flag: "-C"

include:
- php: 8.3
mssql:
server: 2019-latest
odbc-version: 18
flag: "-C"

services:
mssql:
image: mcr.microsoft.com/mssql/${{ matrix.mssql }}
image: mcr.microsoft.com/mssql/server:${{ matrix.mssql.server }}
env:
SA_PASSWORD: YourStrong!Passw0rd
MSSQL_SA_PASSWORD: YourStrong!Passw0rd
ACCEPT_EULA: Y
MSSQL_PID: Developer
ports:
- 1433:1433
options: --name=mssql --health-cmd="/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'SELECT 1'" --health-interval=10s --health-timeout=5s --health-retries=3
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

steps:
- name: Checkout.
uses: actions/checkout@v3
uses: actions/checkout@v5

- name: Install ODBC driver.
run: |
sudo curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18

- name: Create MS SQL Database.
run: docker exec -i mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'YourStrong!Passw0rd' -Q 'CREATE DATABASE yiitest'
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'

- name: Install PHP with extensions.
uses: shivammathur/setup-php@v2
Expand All @@ -79,6 +87,9 @@ jobs:
- name: Update composer.
run: composer self-update

- name: Install Composer dependencies
uses: ramsey/composer-install@v3

- name: Install db-mssql.
run: composer require yiisoft/db-mssql --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi

Expand Down
2 changes: 1 addition & 1 deletion tests/Support/MssqlFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ final class MssqlFactory extends ConnectionFactory
public function createConnection(): ConnectionInterface
{
$pdoDriver = new Driver(
(new Dsn('sqlsrv', 'localhost', 'yiitest'))->asString(),
(new Dsn('sqlsrv', 'localhost', 'yiitest;TrustServerCertificate=1'))->asString(),
'SA',
'YourStrong!Passw0rd',
);
Expand Down
Loading