name: "neozip: OSB" on: workflow_call: workflow_dispatch: jobs: cmake: name: ${{ matrix.name }} runs-on: ${{ matrix.os }} timeout-minutes: 80 strategy: fail-fast: false matrix: include: - name: Ubuntu GCC OSB os: ubuntu-latest compiler: gcc cxx-compiler: g++ build-dir: ../build build-src-dir: neozip cmake-args: -DWITH_BENCHMARKS=ON - name: Ubuntu GCC OSB add_subdirectory os: ubuntu-latest compiler: gcc cxx-compiler: g++ build-dir: ../build build-src-dir: neozip/test/add-subdirectory-project cmake-args: -DWITH_BENCHMARKS=ON steps: - name: Checkout repository uses: actions/checkout@v6 with: show-progress: false - name: Make source tree read-only shell: bash run: chmod -R a-w neozip - name: Generate project files shell: bash run: | cmake -S ${{ matrix.build-src-dir || 'neozip' }} -B ${{ matrix.build-dir || 'build' }} \ ${{ matrix.cmake-args }} \ -DWITH_MAINTAINER_WARNINGS=ON env: CC: ${{ matrix.compiler }} CXX: ${{ matrix.cxx-compiler }} CI: true - name: Compile source code run: cmake --build ${{ matrix.build-dir || 'build' }} --verbose -j5 - name: Run test cases run: ctest --verbose -C Release --output-on-failure --max-width 120 -j 5 working-directory: ${{ matrix.build-dir || 'build' }} - name: Make source tree writable shell: bash run: chmod -R +w neozip - name: Upload build errors uses: actions/upload-artifact@v7 if: failure() with: name: ${{ matrix.name }} path: | **/CMakeFiles/CMakeOutput.log **/CMakeFiles/CMakeError.log **/Testing/Temporary/* retention-days: 30