# 1. Build with multiple versions of gcc and clang using the ubuntu-provided compiler # 2. Using the latest version of each compiler, build against all supported C++ standards name: Compiler multibuild on: schedule: - cron: '0 3 * * 1' # 3AM on Monday workflow_dispatch: jobs: gcc-ubuntu-20_04: strategy: fail-fast: false matrix: version: [7, 8, 9, 10] uses: ./.github/workflows/build.yaml with: name: gcc-${{ matrix.version }} os: "ubuntu-20.04" c-compiler: "gcc-${{ matrix.version }}" cxx-compiler: "g++-${{ matrix.version }}" gcc-ubuntu-22_04: strategy: fail-fast: false matrix: version: [11, 12] uses: ./.github/workflows/build.yaml with: name: gcc-${{ matrix.version }} os: "ubuntu-22.04" c-compiler: "gcc-${{ matrix.version }}" cxx-compiler: "g++-${{ matrix.version }}" gcc-ubuntu-23_10: strategy: fail-fast: false matrix: version: [13] uses: ./.github/workflows/build.yaml with: name: gcc-${{ matrix.version }} os: "ubuntu-23.10" c-compiler: "gcc-${{ matrix.version }}" cxx-compiler: "g++-${{ matrix.version }}" clang-ubuntu-20_04: strategy: fail-fast: false matrix: version: [7, 8, 9, 10, 11, 12] uses: ./.github/workflows/build.yaml with: name: clang-${{ matrix.version }} os: "ubuntu-20.04" c-compiler: "clang-${{ matrix.version }}" cxx-compiler: "clang++-${{ matrix.version }}" is-clang: true extra-libs: "libomp-${{ matrix.version }}-dev" clang-ubuntu-22_04: strategy: fail-fast: false matrix: version: [13, 14, 15] uses: ./.github/workflows/build.yaml with: name: clang-${{ matrix.version }} os: "ubuntu-22.04" c-compiler: "clang-${{ matrix.version }}" cxx-compiler: "clang++-${{ matrix.version }}" is-clang: true extra-libs: "libomp-${{ matrix.version }}-dev" clang-ubuntu-23_10: strategy: fail-fast: false matrix: version: [16, 17] uses: ./.github/workflows/build.yaml with: name: clang-${{ matrix.version }} os: "ubuntu-23.10" c-compiler: "clang-${{ matrix.version }}" cxx-compiler: "clang++-${{ matrix.version }}" is-clang: true extra-libs: "libomp-${{ matrix.version }}-dev" gcc-cxx-standards-11-17: strategy: fail-fast: false matrix: std: [11, 14, 17] uses: ./.github/workflows/build.yaml with: name: gcc-cxx-${{ matrix.std }} os: "ubuntu-22.04" c-compiler: "gcc-12" cxx-compiler: "g++-12" extra-cmake-flags: "-DDYNINST_CXX_LANGUAGE_STANDARD=${{ matrix.std }}" gcc-cxx-standards-20-23: strategy: fail-fast: false matrix: std: [20, 23] uses: ./.github/workflows/build.yaml with: name: gcc-cxx-${{ matrix.std }} os: "ubuntu-23.10" c-compiler: "gcc-13" cxx-compiler: "g++-13" extra-cmake-flags: "-DDYNINST_CXX_LANGUAGE_STANDARD=${{ matrix.std }}" clang-cxx-standards: strategy: fail-fast: false matrix: std: [11, 14, 17] # clang has a bug with 20+ and operator== reflexiveness uses: ./.github/workflows/build.yaml with: name: cxx-${{ matrix.std }} os: "ubuntu-22.04" c-compiler: "clang-15" cxx-compiler: "clang++-15" is-clang: true extra-cmake-flags: "-DDYNINST_CXX_LANGUAGE_STANDARD=${{ matrix.std }}" extra-libs: "libomp-15-dev"