Refactoring CI Build Steps #612
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: Windows | |
| on: | |
| push: | |
| paths-ignore: | |
| - 'README.md' | |
| - 'doc/**' | |
| pull_request: | |
| paths-ignore: | |
| - 'README.md' | |
| - 'doc/**' | |
| jobs: | |
| vs2022: | |
| runs-on: windows-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cxx: [ "msvc", "clangcl" ] | |
| env: | |
| TAOPQ_TEST_DATABASE: host=localhost dbname=postgres user=postgres password=postgres | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up PostgreSQL | |
| uses: ikalnytskyi/action-setup-postgres@v8 | |
| - name: Set up MSVC dev cmd (x64) | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| arch: x64 | |
| - name: Set up Conan | |
| uses: conan-io/setup-conan@v1 | |
| with: | |
| cache_packages: true | |
| config_urls: .github/conan | |
| - name: Install dependencies with Conan MSVC | |
| run: conan install ${{ github.workspace }}/.github/conan/conanfile.py --build=missing -pr msvc --lockfile-partial | |
| - name: Re-use Conan dependencies with MSVC | |
| if: matrix.cxx == 'clangcl' | |
| run: | | |
| sed -i 's/set(CMAKE_CXX_COMPILER/# set(CMAKE_CXX_COMPILER/g' ${{ github.workspace }}/.github/conan/build/Release/generators/conan_toolchain.cmake | |
| sed -i 's/set(CMAKE_C_COMPILER/# set(CMAKE_C_COMPILER/g' ${{ github.workspace }}/.github/conan/build/Release/generators/conan_toolchain.cmake | |
| - name: CMake Configure | |
| shell: pwsh | |
| run: cmake --preset ${{ matrix.cxx }}-release-dev -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/taopq-install -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/.github/conan/build/Release/generators/conan_toolchain.cmake | |
| - name: Build project files | |
| run: cmake --build --preset ${{ matrix.cxx }}-release-dev | |
| - name: Run tests | |
| run: cmake --build --preset ${{ matrix.cxx }}-release-dev --target test | |
| - name: Run examples | |
| run: cmake --build --preset ${{ matrix.cxx }}-release-dev --target examples | |
| env: | |
| PGDATABASE: ${{ env.TAOPQ_TEST_DATABASE }} | |
| - name: Install Taocpp TaoPQ | |
| run: cmake --build --preset ${{ matrix.cxx }}-release-dev --target install |