|
62 | 62 | if: runner.os == 'Linux' |
63 | 63 | run: sudo apt-get install -y ninja-build |
64 | 64 |
|
| 65 | + - name: Check CMake Version |
| 66 | + run: cmake --version |
| 67 | + |
| 68 | + # ----------------------------------------------------------------------- |
| 69 | + # Main project |
| 70 | + # ----------------------------------------------------------------------- |
65 | 71 | - name: Configure |
66 | 72 | run: cmake --preset ${{ matrix.preset }} -B build/${{ matrix.preset }} |
67 | 73 |
|
|
90 | 96 | name: test-results-${{ matrix.compiler }} |
91 | 97 | path: build/${{ matrix.preset }}/test-results-*.xml |
92 | 98 | retention-days: 30 |
| 99 | + |
| 100 | + # ----------------------------------------------------------------------- |
| 101 | + # FetchContent variant — simulates embedding via FetchContent_MakeAvailable |
| 102 | + # ----------------------------------------------------------------------- |
| 103 | + - name: Copy Preset (FetchContent) |
| 104 | + run: cp ./CMakePresets.json test/cmake-fetch_content |
| 105 | + |
| 106 | + - name: Test Consumer (FetchContent) — Configure |
| 107 | + working-directory: test/cmake-fetch_content |
| 108 | + run: cmake --preset ${{ matrix.preset }} -B build-consumer-fetch_content |
| 109 | + -DEGGS_FLAT_MAP_SOURCE_DIR=${{ github.workspace }} |
| 110 | + |
| 111 | + - name: Test Consumer (FetchContent) — Build |
| 112 | + working-directory: test/cmake-fetch_content |
| 113 | + run: cmake --build build-consumer-fetch_content --config Debug |
| 114 | + |
| 115 | + - name: Test Consumer (FetchContent) — Test |
| 116 | + working-directory: test/cmake-fetch_content |
| 117 | + run: ctest --test-dir build-consumer-fetch_content --build-config Debug |
| 118 | + --output-on-failure |
| 119 | + |
| 120 | + # ----------------------------------------------------------------------- |
| 121 | + # Install variant — simulates a real end-user find_package workflow |
| 122 | + # ----------------------------------------------------------------------- |
| 123 | + - name: Test Install |
| 124 | + run: cmake --install build/${{ matrix.preset }} |
| 125 | + --prefix ${{ runner.temp }}/eggs-flat_map-install |
| 126 | + --config Release |
| 127 | + |
| 128 | + - name: Upload installed package |
| 129 | + uses: actions/upload-artifact@v6 |
| 130 | + with: |
| 131 | + name: installed-package-${{ matrix.compiler }} |
| 132 | + path: ${{ runner.temp }}/eggs-flat_map-install |
| 133 | + if-no-files-found: error |
| 134 | + retention-days: 7 |
| 135 | + |
| 136 | + - name: Clean Source and Build Tree |
| 137 | + run: cmake -E rm -rf ./include ./src ./build |
| 138 | + |
| 139 | + - name: Copy Preset (find_package) |
| 140 | + run: cp ./CMakePresets.json test/cmake-find_package |
| 141 | + |
| 142 | + - name: Test Consumer (find_package) — Configure |
| 143 | + working-directory: test/cmake-find_package |
| 144 | + run: cmake --preset ${{ matrix.preset }} -B build-consumer-find_package |
| 145 | + -DCMAKE_PREFIX_PATH=${{ runner.temp }}/eggs-flat_map-install |
| 146 | + --debug-find-pkg=Eggs.FlatMap |
| 147 | + |
| 148 | + - name: Test Consumer (find_package) — Build |
| 149 | + working-directory: test/cmake-find_package |
| 150 | + run: cmake --build build-consumer-find_package --config Debug |
| 151 | + |
| 152 | + - name: Test Consumer (find_package) — Test |
| 153 | + working-directory: test/cmake-find_package |
| 154 | + run: ctest --test-dir build-consumer-find_package --build-config Debug |
| 155 | + --output-on-failure |
0 commit comments