name: Bin2CPP on: push: branches: - '**' workflow_dispatch: env: CCACHE_BASEDIR: ${{ github.workspace }} jobs: build-and-test: runs-on: ubuntu-latest timeout-minutes: 120 container: image: git.romainboullard.com/bigfootdev/linuxcppbuilder:main strategy: matrix: build_type: ["Debug", "RelWithDebInfo", "Release"] include: - build_type: Release conan_profile: ./ConanProfiles/clang name: Release - build_type: Debug conan_profile: ./ConanProfiles/clangd name: Debug (ASAN, LSAN, UBSAN) - build_type: Debug conan_profile: ./ConanProfiles/clangd2 name: Debug (MSAN) - build_type: RelWithDebInfo conan_profile: ./ConanProfiles/clangd name: RelWithDebInfo (ASAN, LSAN, UBSAN) - build_type: RelWithDebInfo conan_profile: ./ConanProfiles/clangd2 name: RelWithDebInfo (MSAN) name: "Build & Test ${{ matrix.name }}" steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v6 with: submodules: recursive - name: Build run: | conan profile detect conan install . --deployer=full_deploy --deployer-folder=build --remote=bigfootpackages -pr:h=${{ matrix.conan_profile }} -pr:b=${{ matrix.conan_profile }} --build=missing -s build_type=${{ matrix.build_type }} cmake -S . -B ./build/${{ matrix.build_type }} --toolchain ./build/${{ matrix.build_type }}/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -G "Ninja" cmake --build build/${{ matrix.build_type }} --parallel $(nproc) - name: Unit Tests run: | cd ./build/${{ matrix.build_type }} ctest . --output-on-failure clang-format: runs-on: ubuntu-latest timeout-minutes: 120 container: image: git.romainboullard.com/bigfootdev/linuxcppbuilder:main name: "Clang Format Checks" steps: - name: Install Node.js run: apt-get update && apt-get install -y nodejs - name: Checkout repository uses: actions/checkout@v6 with: submodules: recursive - name: Clang Format Checks run: chmod +x format.sh && ./format.sh --check Bin2CPP