Files
gem5/.github/workflows/compiler-tests.yaml
Bobby R. Bruce 3142464ff7 misc: Add 'scheduler.yaml' workflow (#1307)
This is made to run on the 'stable' branch to schedule workflow runs on
the `develop` branch. This solves the problem of GitHub Workflows being
scheduled to only run on 'stable' branch' thus ignoring changes made to
them on 'develop'

With this schedule we no longer need to force a checkout of 'develop' in
the workflows. As such these have been removed.

The scheduled workflows are now triggered via "workflow_dispatch" via
the "scheduler.yaml" workflow
2024-07-01 12:36:56 -07:00

59 lines
2.8 KiB
YAML

---
# 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, clang-version-9, clang-version-8, clang-version-7, 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."