-
Notifications
You must be signed in to change notification settings - Fork 0
67 lines (61 loc) · 3.19 KB
/
compiler-tests.yaml
File metadata and controls
67 lines (61 loc) · 3.19 KB
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
---
# 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-14, gcc-version-13, gcc-version-12, gcc-version-11, clang-version-19, clang-version-18, clang-version-17, clang-version-16,
clang-version-15, clang-version-14, 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-14, clang-version-19]
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
sanitizer-compilation-tests:
# These tests have been disabled because our self-hosted runners lack
# sufficient memory to run compilation tests with address sanitization
# enabled.
if: false
strategy:
fail-fast: false
matrix:
sanitizer: [asan, ubsan]
image: [gcc-version-14]
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/ALL/gem5${{ matrix.opts }} with ${{ matrix.sanitizer }} in ${{ matrix.image }}
# The address sanitizer is quite memory intensive; triggering OOM errors on smaller runners.
# To mitigate this, we limit scons to a single thread (`-j1`)
run: /usr/bin/env python3 /usr/bin/scons --ignore-style build/ALL/gem5${{ matrix.opts }} -j1 --with-${{ matrix.sanitizer }}
timeout-minutes: 1200 # 20 hours