changed collate a bit #14
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [dev, master] | |
| paths-ignore: | |
| - '.git*' | |
| - '_config.yml' | |
| - 'LICENSE' | |
| - '**/*.md' | |
| - '*.png' | |
| - '*.sh' | |
| pull_request: | |
| paths-ignore: | |
| - '.git*' | |
| - '_config.yml' | |
| - 'LICENSE' | |
| - '**/*.md' | |
| - '*.png' | |
| - '*.sh' | |
| env: | |
| VCPKG_COMMIT: 4334d8b4c8916018600212ab4dd4bbdc343065d1 # 2025.09.17 | |
| jobs: | |
| # =================== | |
| # Windows builds | |
| # =================== | |
| windows: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: "VS 2022, x64, C++23" | |
| os: windows-2022 | |
| platform: x64 | |
| arch: x64 | |
| cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_23=ON" | |
| triplet: x64-windows | |
| - name: "VS 2022, x64, C++20" | |
| os: windows-2022 | |
| platform: x64 | |
| arch: x64 | |
| cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_20=ON" | |
| triplet: x64-windows | |
| - name: "VS 2022, x86, C++20" | |
| os: windows-2022 | |
| platform: x86 | |
| arch: Win32 | |
| cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_20=ON" | |
| triplet: x86-windows | |
| - name: "VS 2019, x64, C++17" | |
| os: windows-2019 | |
| platform: x64 | |
| arch: x64 | |
| cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON" | |
| triplet: x64-windows | |
| name: Windows - ${{ matrix.name }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup vcpkg | |
| uses: lukka/run-vcpkg@v11 | |
| with: | |
| vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }} | |
| vcpkgDirectory: ${{ runner.temp }}/vcpkg | |
| - name: Install dependencies | |
| run: | | |
| vcpkg install sqlite3[core,dbstat,math,json1,fts5,rtree,soundex] catch2 --triplet ${{ matrix.triplet }} | |
| - name: Configure CMake | |
| run: | | |
| cmake -S . -B build -A ${{ matrix.arch }} ${{ matrix.cxx_standard }} -DVCPKG_TARGET_TRIPLET=${{ matrix.triplet }} -DCMAKE_TOOLCHAIN_FILE=${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake | |
| - name: Build | |
| run: cmake --build build --config Release --parallel | |
| - name: Test | |
| run: ctest --test-dir build --verbose --output-on-failure --build-config Release | |
| # =================== | |
| # Linux builds | |
| # =================== | |
| linux: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: "clang-12, C++17" | |
| os: ubuntu-22.04 | |
| cc: clang-12 | |
| cxx: clang++-12 | |
| cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON" | |
| install_compiler: true | |
| compiler_package: clang-12 | |
| - name: "gcc-10, C++17" | |
| os: ubuntu-22.04 | |
| cc: gcc-10 | |
| cxx: g++-10 | |
| cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON" | |
| install_compiler: true | |
| compiler_package: g++-10 | |
| name: Linux - ${{ matrix.name }} | |
| env: | |
| CC: ${{ matrix.cc }} | |
| CXX: ${{ matrix.cxx }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install compiler | |
| if: matrix.install_compiler | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y ${{ matrix.compiler_package }} | |
| - name: Setup vcpkg | |
| uses: lukka/run-vcpkg@v11 | |
| with: | |
| vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }} | |
| vcpkgDirectory: ${{ runner.temp }}/vcpkg | |
| - name: Install dependencies | |
| run: | | |
| vcpkg install sqlite3[core,dbstat,math,json1,fts5,rtree,soundex] catch2 --overlay-triplets=${{ github.workspace }}/vcpkg/triplets | |
| - name: Configure CMake | |
| run: | | |
| cmake -S . -B build ${{ matrix.cxx_standard }} ${{ matrix.build_examples }} --toolchain ${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake | |
| - name: Build | |
| run: cmake --build build | |
| - name: Test | |
| run: ctest --test-dir build --verbose --output-on-failure | |
| # =================== | |
| # macOS builds | |
| # =================== | |
| macos: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - name: "Apple Clang, C++17" | |
| os: macos-14 | |
| cxx_standard: "-DSQLITE_ORM_ENABLE_CXX_17=ON" | |
| name: macOS - ${{ matrix.name }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup vcpkg | |
| uses: lukka/run-vcpkg@v11 | |
| with: | |
| vcpkgGitCommitId: ${{ env.VCPKG_COMMIT }} | |
| vcpkgDirectory: ${{ runner.temp }}/vcpkg | |
| - name: Install dependencies | |
| run: | | |
| vcpkg install sqlite3[core,dbstat,math,json1,fts5,rtree,soundex] catch2 --overlay-triplets=${{ github.workspace }}/vcpkg/triplets | |
| - name: Configure CMake | |
| run: | | |
| cmake -S . -B build ${{ matrix.cxx_standard }} --toolchain ${{ env.VCPKG_ROOT }}/scripts/buildsystems/vcpkg.cmake | |
| - name: Build | |
| run: cmake --build build | |
| - name: Test | |
| run: ctest --test-dir build --verbose --output-on-failure | |
| # =================== | |
| # iOS builds (compile only) | |
| # =================== | |
| ios: | |
| runs-on: macos-14 | |
| name: iOS - Clang, C++17 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Configure CMake for iOS | |
| run: | | |
| cmake -S . -B build \ | |
| -DCMAKE_SYSTEM_NAME=iOS \ | |
| -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \ | |
| -DCMAKE_OSX_ARCHITECTURES=arm64 \ | |
| -DSQLITE_ORM_ENABLE_CXX_17=ON \ | |
| -DBUILD_TESTING=OFF \ | |
| -DBUILD_EXAMPLES=ON | |
| - name: Build | |
| run: cmake --build build --config Release | |
| # =================== | |
| # Android builds (compile only) | |
| # =================== | |
| android: | |
| runs-on: ubuntu-24.04 | |
| name: Android - NDK, C++17 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Download and build SQLite3 for Android | |
| run: | | |
| curl -sL https://www.sqlite.org/2024/sqlite-amalgamation-3450000.zip -o sqlite.zip | |
| unzip -q sqlite.zip | |
| mkdir -p sqlite3-android/lib sqlite3-android/include | |
| cp sqlite-amalgamation-3450000/sqlite3.h sqlite-amalgamation-3450000/sqlite3ext.h sqlite3-android/include/ | |
| $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang \ | |
| -c sqlite-amalgamation-3450000/sqlite3.c -o sqlite3.o -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_JSON1 | |
| $ANDROID_NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar rcs sqlite3-android/lib/libsqlite3.a sqlite3.o | |
| - name: Configure CMake for Android | |
| run: | | |
| cmake -S . -B build \ | |
| -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake \ | |
| -DANDROID_ABI=arm64-v8a \ | |
| -DANDROID_PLATFORM=android-24 \ | |
| -DSQLITE_ORM_ENABLE_CXX_17=ON \ | |
| -DBUILD_TESTING=OFF \ | |
| -DBUILD_EXAMPLES=ON \ | |
| -DSQLite3_INCLUDE_DIR=${{ github.workspace }}/sqlite3-android/include \ | |
| -DSQLite3_LIBRARY=${{ github.workspace }}/sqlite3-android/lib/libsqlite3.a | |
| - name: Build | |
| run: cmake --build build --config Release |