36
36
host-x64 :
37
37
needs : [detect-code-related-file-changes]
38
38
if : needs.detect-code-related-file-changes.outputs.has_code_related_changes == 'true'
39
+ strategy :
40
+ fail-fast : false
41
+ matrix :
42
+ compiler : [gcc-latest, clang-latest]
39
43
runs-on : ubuntu-24.04
40
44
steps :
41
45
- uses : actions/checkout@v4
@@ -49,33 +53,53 @@ jobs:
49
53
sudo chmod +x ./llvm.sh
50
54
sudo ./llvm.sh 18
51
55
shell : bash
56
+ - name : Install compiler
57
+ id : install_cc
58
+ uses : rlalik/setup-cpp-compiler@master
59
+ with :
60
+ compiler : ${{ matrix.compiler }}
52
61
- name : default build
62
+ env :
63
+ CC : ${{ steps.install_cc.outputs.cc }}
53
64
run : make -j$(nproc)
54
65
- name : check + tests
66
+ env :
67
+ CC : ${{ steps.install_cc.outputs.cc }}
55
68
run : |
69
+ make clean
56
70
make check -j$(nproc)
57
71
make tests -j$(nproc)
58
72
make misalign -j$(nproc)
59
73
make tool -j$(nproc)
60
74
- name : diverse configurations
75
+ env :
76
+ CC : ${{ steps.install_cc.outputs.cc }}
61
77
run : |
62
78
make distclean && make ENABLE_EXT_M=0 check -j$(nproc)
63
79
make distclean && make ENABLE_EXT_A=0 check -j$(nproc)
64
80
make distclean && make ENABLE_EXT_F=0 check -j$(nproc)
65
81
make distclean && make ENABLE_EXT_C=0 check -j$(nproc)
66
82
make distclean && make ENABLE_SDL=0 check -j$(nproc)
67
83
- name : misalignment test in block emulation
84
+ env :
85
+ CC : ${{ steps.install_cc.outputs.cc }}
68
86
run : |
69
87
make -C tests/system/alignment/
70
88
make distclean && make ENABLE_ELF_LOADER=1 ENABLE_EXT_C=0 ENABLE_SYSTEM=1 misalign-in-blk-emu -j$(nproc)
71
89
- name : MMU test
90
+ env :
91
+ CC : ${{ steps.install_cc.outputs.cc }}
72
92
run : |
73
93
make -C tests/system/mmu/
74
94
make distclean && make ENABLE_ELF_LOADER=1 ENABLE_SYSTEM=1 mmu-test -j$(nproc)
75
95
- name : gdbstub test
96
+ env :
97
+ CC : ${{ steps.install_cc.outputs.cc }}
76
98
run : |
77
99
make distclean && make ENABLE_GDBSTUB=1 gdbstub-test -j$(nproc)
78
100
- name : JIT test
101
+ env :
102
+ CC : ${{ steps.install_cc.outputs.cc }}
79
103
run : |
80
104
make ENABLE_JIT=1 clean && make ENABLE_JIT=1 check -j$(nproc)
81
105
make ENABLE_JIT=1 clean && make ENABLE_EXT_A=0 ENABLE_JIT=1 check -j$(nproc)
86
110
make clean && make ENABLE_UBSAN=1 check -j$(nproc)
87
111
make ENABLE_JIT=1 clean && make ENABLE_JIT=1 ENABLE_UBSAN=1 check -j$(nproc)
88
112
- name : boot Linux kernel test
113
+ env :
114
+ CC : ${{ steps.install_cc.outputs.cc }}
89
115
run : |
90
116
make clean && make ENABLE_SYSTEM=1 && make ENABLE_SYSTEM=1 artifact -j$(nproc)
91
117
.ci/boot-linux.sh
0 commit comments