69 lines (64 loc) · 3.23 KB
/
compiler-tests.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
---
# This workflow runs all of the compiler tests
name: Compiler Tests
on:
# Runs every Friday from 7AM UTC
schedule:
- cron: 00 7 * * 5
# Allows us to manually start workflow for testing
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, gcc-version-8, 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
with:
# Scheduled workflows run on the default branch by default. We
# therefore need to explicitly checkout the develop branch.
ref: develop
- 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
with:
# Scheduled workflows run on the default branch by default. We
# therefore need to explicitly checkout the develop branch.
ref: develop
- 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."