--- # This workflow runs all of the compiler tests name: Compiler Tests on: # This is triggered weekly via the 'scheduler.yaml' workflow. workflow_dispatch: jobs: # replication of compiler-tests.sh all-compilers: strategy: fail-fast: false matrix: image: [gcc-version-13, gcc-version-12, gcc-version-11, gcc-version-10, clang-version-16, clang-version-15, clang-version-14, clang-version-13, clang-version-12, clang-version-11, clang-version-10, ubuntu-20.04_all-dependencies, ubuntu-22.04_all-dependencies, ubuntu-24.04_all-dependencies, ubuntu-24.04_min-dependencies] opts: [.opt, .fast] runs-on: [self-hosted, linux, x64] timeout-minutes: 2880 # 48 hours container: ghcr.io/gem5/${{ matrix.image }}:latest steps: - uses: actions/checkout@v4 - name: Compile build/ALL/gem5${{ matrix.opts }} with ${{ matrix.image }} run: /usr/bin/env python3 /usr/bin/scons --ignore-style build/ALL/gem5${{ matrix.opts }} -j$(nproc) timeout-minutes: 600 # 10 hours # Tests the two latest gcc and clang supported compilers against all gem5 compilations. latest-compilers-all-gem5-builds: strategy: fail-fast: false matrix: gem5-compilation: [ARM, ARM_MESI_Three_Level, ARM_MESI_Three_Level_HTM, ARM_MOESI_hammer, Garnet_standalone, MIPS, 'NULL', NULL_MESI_Two_Level, NULL_MOESI_CMP_directory, NULL_MOESI_CMP_token, NULL_MOESI_hammer, POWER, RISCV, SPARC, X86, X86_MI_example, X86_MOESI_AMD_Base, VEGA_X86] image: [gcc-version-13, clang-version-16] opts: [.opt] runs-on: [self-hosted, linux, x64] timeout-minutes: 2880 # 48 hours container: ghcr.io/gem5/${{ matrix.image }}:latest steps: - uses: actions/checkout@v4 - name: Compile build/${{ matrix.gem5-compilation }}/gem5${{ matrix.opts }} with ${{ matrix.image }} run: /usr/bin/env python3 /usr/bin/scons --ignore-style build/${{ matrix.gem5-compilation }}/gem5${{ matrix.opts }} -j$(nproc) timeout-minutes: 600 # 10 hours compiler-tests: # The dummy job is used to indicate whether the compiler tests have # passed or not. This can be used as status check for pull requests. # I.e., if we want to stop pull requests from being merged if the # compiler tests are failing, we can add this job as a required status # check. runs-on: ubuntu-latest needs: - latest-compilers-all-gem5-builds - all-compilers steps: - run: echo "This compiler tests have passed."