add build-action for Linux with gcc and clang #1
This file contains 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: BUILD-LINUX-CI | |
on: [push, pull_request] | |
permissions: | |
checks: write | |
jobs: | |
ci: | |
if: >- | |
! contains(toJSON(github.event.commits.*.message), '[skip ci]') && | |
! contains(toJSON(github.event.commits.*.message), '[skip github]') | |
name: LINUX-CI | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- {gen: Unix Makefiles, shared: ON, ccompiler: gcc, cxxcompiler: g++} | |
- {gen: Unix Makefiles, shared: OFF, ccompiler: gcc, cxxcompiler: g++} | |
- {gen: Unix Makefiles, shared: ON, ccompiler: clang, cxxcompiler: clang} | |
- {gen: Unix Makefiles, shared: OFF, ccompiler: clang, cxxcompiler: clang} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: Configure | |
run: | | |
mkdir install | |
cmake -G "${{matrix.gen}}" -DBUILD_SHARED_LIBS=${{matrix.shared}} "-DCMAKE_INSTALL_PREFIX=./install" -DCMAKE_CXX_COMPILER=${{matrix.cxxcompiler}} -DCMAKE_C_COMPILER=${{matrix.ccompiler}} -B build | |
- name: Build Release | |
run: | | |
cmake --build build --config Release --verbose | |
- name: Install Release | |
run: | | |
cmake --install build --config Release | |
cd install | |
ls -R | |
- name: Test CMake-build against TinyTIFF | |
run: | | |
cd tests | |
cd extcmake_tinytiff_test | |
md build | |
cd build | |
cmake -G "${{matrix.gen}}" -A ${{matrix.arch}} "-DCMAKE_PREFIX_PATH=${{github.workspace}}/install/" -B . -S .. | |
cmake --build . --config Release --verbose | |
- name: Test CMake-build against TinyTIFF, using FetchContent-API | |
if: success() || failure() # always run even if the previous step fails | |
run: | | |
cd tests | |
cd extcmake_fetchcontent_tinytiff_test | |
md build | |
cd build | |
cmake -G "${{matrix.gen}}" -A ${{matrix.arch}} -B . -S .. | |
cmake --build . --config Release --verbose | |
- name: Run Release tests | |
run: | | |
cd install | |
cd bin | |
pwd | |
ls | |
.\tinytiffwriter_test --simple | |
.\tinytiffreader_test --simple | |
- name: Publish Test Report | |
uses: mikepenz/action-junit-report@v4 | |
if: success() || failure() # always run even if the previous step fails | |
with: | |
report_paths: '**/install/bin/*.xml' |