|
8 | 8 | workflow_dispatch: |
9 | 9 |
|
10 | 10 | jobs: |
11 | | - tests: |
| 11 | + tests-gcc: |
12 | 12 | runs-on: ubuntu-latest |
13 | 13 |
|
14 | 14 | env: |
|
71 | 71 |
|
72 | 72 | - name: Integration tests |
73 | 73 | run: ctest --preset release -R tests_integration_ds_mysql |
| 74 | + |
| 75 | + tests-clang: |
| 76 | + runs-on: ubuntu-latest |
| 77 | + |
| 78 | + steps: |
| 79 | + - uses: actions/checkout@v6 |
| 80 | + |
| 81 | + - name: Install dependencies |
| 82 | + run: | |
| 83 | + sudo apt-get update -q |
| 84 | + sudo apt-get install -y software-properties-common ca-certificates gpg wget |
| 85 | + # Kitware APT repo for CMake 3.31+ |
| 86 | + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc \ |
| 87 | + | gpg --dearmor \ |
| 88 | + | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg > /dev/null |
| 89 | + echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ noble main' \ |
| 90 | + | sudo tee /etc/apt/sources.list.d/kitware.list |
| 91 | + sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y |
| 92 | + sudo apt-get update -q |
| 93 | + sudo apt-get install -y cmake ninja-build clang-15 \ |
| 94 | + libmysqlclient-dev pkg-config |
| 95 | +
|
| 96 | + - name: Configure |
| 97 | + run: cmake --preset release -DSKIP_DOCKER_MANAGEMENT=ON -DBUILD_INTEGRATION_TESTS=OFF -DBUILD_EXAMPLES=OFF |
| 98 | + env: |
| 99 | + CXX: clang++-15 |
| 100 | + CC: clang-15 |
| 101 | + |
| 102 | + - name: Build |
| 103 | + run: cmake --build build -j4 |
| 104 | + |
| 105 | + - name: Unit tests |
| 106 | + run: ctest --preset release -R tests_unit_ds_mysql |
| 107 | + |
| 108 | + tests-msvc: |
| 109 | + runs-on: windows-latest |
| 110 | + |
| 111 | + steps: |
| 112 | + - uses: actions/checkout@v6 |
| 113 | + |
| 114 | + - name: Install dependencies |
| 115 | + run: | |
| 116 | + choco install cmake ninja --no-progress -y |
| 117 | + shell: pwsh |
| 118 | + |
| 119 | + - name: Detect MySQL root |
| 120 | + shell: pwsh |
| 121 | + run: | |
| 122 | + $dirs = Get-ChildItem "C:\Program Files\MySQL" -Directory -ErrorAction SilentlyContinue | |
| 123 | + Where-Object { $_.Name -like "MySQL Server *" } | |
| 124 | + Sort-Object Name -Descending |
| 125 | + if (-not $dirs) { throw "MySQL installation not found" } |
| 126 | + $root = $dirs[0].FullName |
| 127 | + echo "MYSQL_ROOT_DIR=$root" >> $env:GITHUB_ENV |
| 128 | + echo "$root\lib" >> $env:GITHUB_PATH |
| 129 | +
|
| 130 | + - name: Configure |
| 131 | + shell: pwsh |
| 132 | + run: | |
| 133 | + cmake -B build ` |
| 134 | + -G "Visual Studio 17 2022" -A x64 ` |
| 135 | + -DBUILD_INTEGRATION_TESTS=OFF ` |
| 136 | + -DBUILD_EXAMPLES=OFF ` |
| 137 | + "-DMYSQL_ROOT_DIR=$env:MYSQL_ROOT_DIR" |
| 138 | +
|
| 139 | + - name: Build |
| 140 | + run: cmake --build build --config Release -j4 |
| 141 | + |
| 142 | + - name: Unit tests |
| 143 | + run: ctest --build-dir build -C Release -R tests_unit_ds_mysql --output-on-failure |
0 commit comments