@@ -129,3 +129,67 @@ jobs:
129129 run : python3 -u test/scripts/tidy_output.py build/test/output/odr-private/output
130130 - name : compare private test outputs
131131 run : python3 -u test/scripts/compare_output.py --driver firefox --max-workers 1 test/data/reference-output/odr-private/output build/test/output/odr-private/output
132+
133+ build-test-downstream :
134+ runs-on : ${{ matrix.config.os }}
135+ strategy :
136+ fail-fast : false
137+ matrix :
138+ config :
139+ - { os: ubuntu-22.04, compiler: clang, cc: clang-15, cxx: clang++-15 }
140+ - { os: ubuntu-22.04, compiler: gcc, cc: gcc-13, cxx: g++-13 }
141+ - { os: macos-12, compiler: clang, cc: clang, cxx: clang++ }
142+ - { os: windows-2022, compiler: msvc }
143+
144+ steps :
145+ - name : ubuntu install ccache
146+ if : runner.os == 'Linux'
147+ run : |
148+ sudo apt install ccache
149+ ccache -V
150+ - name : macos install ccache
151+ if : runner.os == 'macOS'
152+ run : |
153+ brew install ccache
154+ ccache -V
155+
156+ - name : set up python 3.8
157+ uses : actions/setup-python@v2
158+ with :
159+ python-version : 3.8
160+ - name : install python dependencies
161+ run : pip install --upgrade pip conan==1.*
162+
163+ - name : cache
164+ uses : actions/cache@v2
165+ with :
166+ path : |
167+ ~/.ccache
168+ /Users/runner/Library/Caches/ccache
169+ ~/.conan/data
170+ C:/.conan
171+ C:/Users/runneradmin/.conan/data
172+ key : ${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ env.CCACHE_KEY_SUFFIX }}
173+ restore-keys : |
174+ ${{ matrix.config.os }}-${{ matrix.config.compiler }}-
175+
176+ - name : checkout
177+ uses : actions/checkout@v2
178+
179+ - name : conan
180+ run : conan export . odrcore/0.0.0@
181+
182+ - name : cmake
183+ env :
184+ CC : ${{ matrix.config.cc }}
185+ CXX : ${{ matrix.config.cxx }}
186+ run : cmake -B test/downstream/build -S test/downstream -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
187+ - name : build
188+ run : cmake --build test/downstream/build --config Release # `config Release` somehow necessary for windows
189+
190+ - name : run
191+ if : runner.os != 'Windows'
192+ run : test/downstream/build/odr-test-downstream
193+ - name : run
194+ if : runner.os == 'Windows'
195+ run : test/downstream/build/Release/odr-test-downstream.exe
0 commit comments