Files
mongo-php-driver/.github/workflows/tests.yml
2023-01-12 09:05:37 +01:00

167 lines
4.3 KiB
YAML

name: "Tests"
on:
pull_request:
branches:
- "v*.*"
- "master"
- "feature/*"
push:
branches:
- "v*.*"
- "master"
- "feature/*"
jobs:
tests:
name: "Tests"
runs-on: "${{ matrix.os }}"
strategy:
fail-fast: true
matrix:
os:
- "ubuntu-20.04"
php-version:
- "7.4"
- "8.0"
- "8.1"
- "8.2"
mongodb-version:
- "4.4"
topology:
- "server"
include:
- os: "ubuntu-20.04"
php-version: "8.0"
mongodb-version: "6.0"
topology: "replica_set"
- os: "ubuntu-20.04"
php-version: "8.0"
mongodb-version: "6.0"
topology: "sharded_cluster"
- os: "ubuntu-20.04"
php-version: "8.0"
mongodb-version: "4.4"
topology: "replica_set"
- os: "ubuntu-20.04"
php-version: "8.0"
mongodb-version: "4.4"
topology: "sharded_cluster"
steps:
- name: "Checkout"
uses: "actions/checkout@v3"
with:
fetch-depth: 2
submodules: true
- id: setup-mongodb
uses: mongodb-labs/drivers-evergreen-tools@master
with:
version: ${{ matrix.mongodb-version }}
topology: ${{ matrix.topology }}
- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: "${{ matrix.php-version }}"
tools: "phpize"
- name: "Configure driver"
run: .github/workflows/configure.sh
- name: "Build driver"
run: "make all"
- name: "Run Tests"
run: TEST_PHP_ARGS="-q -x --show-diff -g FAIL,XFAIL,BORK,WARN,LEAK,SKIP" make test
env:
MONGODB_URI: ${{ steps.setup-mongodb.outputs.cluster-uri }}
windows-tests:
name: "Windows Tests"
runs-on: ${{ matrix.os }}
defaults:
run:
shell: cmd
strategy:
fail-fast: true
matrix:
os: [ windows-2019, windows-2022 ]
php: [ "7.2", "7.3", "7.4", "8.0", "8.1", "8.2" ]
arch: [ x64, x86 ]
ts: [ ts, nts ]
exclude:
- { os: windows-2019, php: "8.2" }
- { os: windows-2019, php: "8.1" }
- { os: windows-2019, php: "8.0" }
- { os: windows-2019, php: "7.4" }
- { os: windows-2019, php: "7.3" }
- { os: windows-2022, php: "7.2" }
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2
submodules: true
- name: Setup PHP SDK
id: setup-php
uses: cmb69/setup-php-sdk@v0.6
with:
version: ${{ matrix.php }}
arch: ${{ matrix.arch }}
ts: ${{ matrix.ts }}
deps: openssl
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.arch }}
toolset: ${{ steps.setup-php.outputs.toolset }}
- name: phpize
run: phpize
- name: configure
run: configure --enable-mongodb --with-mongodb-sasl=yes --with-mongodb-client-side-encryption=yes --enable-debug-pack --with-prefix=${{ steps.setup-php.outputs.prefix }}
- name: nmake
run: nmake /nologo
- name: Start MongoDB
run: |
sc config MongoDB start= auto
sc start MongoDB
- name: Wait until MongoDB is available
run: .github/workflows/wait-for-mongodb.bat
- name: Run Tests
run: nmake /nologo test
env:
NO_INTERACTION: 1
REPORT_EXIT_STATUS: 1
TESTS: --show-diff
- name: Copy DLL and PDB files to CWD
if: ${{ github.event_name == 'push' }}
run: |
cp .github/workflows/get-build-dir.bat .
for /F "usebackq tokens=*" %%i in (`get-build-dir.bat`) do set BUILD_DIR=%%i
echo BUILD_DIR=%BUILD_DIR%
cp %BUILD_DIR%\php_mongodb.dll .
cp %BUILD_DIR%\php_mongodb.pdb .
- name: Upload DLL and PDB files as build artifacts
if: ${{ github.event_name == 'push' }}
uses: actions/upload-artifact@v3
with:
name: php_mongodb-${{ github.sha }}-${{ matrix.php }}-${{ matrix.ts }}-${{ matrix.arch }}
path: |
php_mongodb.dll
php_mongodb.pdb
retention-days: 3