# Basic CI for all platforms on push # Note that we want to run this as fast as possible and just for the more common configurations. On # PRs, we will test things more intensively :) # - Only running UnitTests and not regression tests on: push: paths-ignore: - "*.md" concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true name: On PUSH - Basic CI for main platforms jobs: windows: name: 'Win10 Arch:x64 BuildType:Release - SHARED' runs-on: windows-2022 steps: - uses: actions/checkout@v3 - name: Setup Ninja uses: ashutoshvarma/setup-ninja@master with: version: 1.10.0 - name: Set up Visual Studio shell uses: egor-tensin/vs-shell@v2 with: arch: x64 - name: Set up Python uses: actions/setup-python@v3 with: python-version: 3.7 - name: Restore conan cache uses: actions/cache@v2 with: path: ${{github.workspace}}/conanCache key: ${{runner.os}}-push-win-${{ hashFiles('conanfile.py') }} - name: Install Conan & Common config run: | pip.exe install "conan==1.54.0" conan profile new --detect default conan profile show default conan profile update settings.compiler="Visual Studio" default conan profile update settings.compiler.version=17 default conan config set storage.path=$Env:GITHUB_WORKSPACE/conanCache - name: Build run: | cmake --preset win-release -S . -B build -DEXIV2_ENABLE_VIDEO=ON cmake --build build --parallel - name: Test run: | cd build ctest --output-on-failure Linux: name: 'Ubuntu 22.04 - GCC - Arch:x64 BuildType:Release - SHARED' runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: install dependencies run: | sudo apt-get install ninja-build pip3 install conan==1.54.0 - name: Conan run: | mkdir build && cd build conan profile new --detect default conan profile update settings.compiler.libcxx=libstdc++11 default conan profile show default conan install .. -o webready=True --build missing - name: build and compile run: | cmake --preset linux-release-NoConan -S . -B build -DEXIV2_ENABLE_VIDEO=ON cmake --build build --parallel - name: Test run: | cd build ctest --output-on-failure MacOS: name: 'MacOS - clang - Arch:x64 BuildType:Release - SHARED' runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: install dependencies run: | brew install ninja brew install inih pushd /tmp curl -LO https://github.com/google/googletest/archive/release-1.8.0.tar.gz tar xzf release-1.8.0.tar.gz mkdir -p googletest-release-1.8.0/build pushd googletest-release-1.8.0/build cmake .. ; make ; make install popd popd - name: build and compile run: | cmake --preset base_mac -S . -B build -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" -DEXIV2_ENABLE_VIDEO=ON cmake --build build --parallel - name: Test run: | cd build ctest --output-on-failure