-
Notifications
You must be signed in to change notification settings - Fork 48
138 lines (128 loc) · 4.38 KB
/
full-gcc.yml
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
name: Full Regressions GCC
on:
pull_request:
branches:
- main
paths-ignore:
- "documentation/**"
workflow_dispatch:
concurrency:
group: full-gcc-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build:
uses: ./.github/workflows/build-appimage.yml
with:
package-name: bambu-gcc-full
compilers: gcc-4.9,gcc-5,gcc-6,gcc-7,gcc-8,clang-12
build-compiler: gcc-8
configure: --enable-glpk --enable-flopoco --enable-opt --with-opt-level=2 --enable-release CC=gcc-8 CXX=g++-8
secrets: inherit
simulate-all:
needs: [build]
runs-on: [self-hosted, long, mentor]
env:
report-dir: test-reports
args: -c=--simulator=MODELSIM -c=--assert-debug
strategy:
max-parallel: 2
fail-fast: false
matrix:
include:
- outname: all_gcc_softfloat-tests
script: all_gcc_softfloat-tests.sh
- outname: all_gcc_CHStone-frontend
script: all_gcc_CHStone-frontend.sh
- outname: all_gcc_softfloat-tests-vhdl
script: all_gcc_softfloat-tests.sh -c=-wH
- outname: all_gcc_CHStone-frontend-vhdl
script: all_gcc_CHStone-frontend.sh -c=-wH
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: 'true'
- name: Download Bambu AppImage
uses: ./.github/actions/storage-download
with:
name: ${{needs.build.outputs.package-name}}
storage-url: "${{secrets.CI_STORAGE_URL}}"
username: "${{secrets.CI_STORAGE_USER}}"
password: "${{secrets.CI_STORAGE_TOKEN}}"
- name: Setup binaries
id: setup
shell: bash
run: |
mkdir bin
ln -s $PWD/*.AppImage bin/bambu
ln -s $PWD/*.AppImage bin/spider
echo "local-bin=$PWD/bin" >> $GITHUB_OUTPUT
- name: Launch test suite
id: suite
shell: bash
run: |
export PATH=${{steps.setup.outputs.local-bin}}:$PATH
mkdir ${{env.report-dir}}
out_dir="$PWD/${{env.report-dir}}"
echo "test-reports-dir=$out_dir" >> $GITHUB_OUTPUT
./panda_regressions/hls/${{matrix.script}} --returnfail --junitdir="$out_dir" --csv="$out_dir/perf.csv" --table="$out_dir/perf.tex" ${{env.args}} ${{matrix.args}}
- name: Upload test reports
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: ${{matrix.outname}}
path: ${{steps.suite.outputs.test-reports-dir}}
grs:
needs: [build, simulate-all]
strategy:
fail-fast: false
matrix:
compiler: [I386_GCC49, I386_GCC5, I386_GCC6, I386_GCC7, I386_GCC8]
name: "GRS (Compiler: ${{matrix.compiler}})"
uses: ./.github/workflows/reusable-grs.yml
with:
package-name: ${{needs.build.outputs.package-name}}
compiler: ${{matrix.compiler}}
additional-args: -c=--simulator=VERILATOR -t150m
secrets: inherit
grs-sdc:
needs: [build, grs]
strategy:
fail-fast: false
matrix:
compiler: [I386_GCC49, I386_GCC5, I386_GCC6, I386_GCC7, I386_GCC8]
name: "GRS SDC (Compiler: ${{matrix.compiler}})"
uses: ./.github/workflows/reusable-grs.yml
with:
package-name: ${{needs.build.outputs.package-name}}
compiler: ${{matrix.compiler}}
additional-args: -c=--simulator=VERILATOR -t150m -c=--speculative-sdc-scheduling --skip_list 20040705-1,20040705-2,20040629-1,memset-3
secrets: inherit
grs-vhdl:
needs: [build, grs]
uses: ./.github/workflows/reusable-grs-vhdl.yml
with:
package-name: ${{needs.build.outputs.package-name}}
test-compilers: I386_GCC49,I386_GCC5,I386_GCC6,I386_GCC7,I386_GCC8
secrets: inherit
examples:
needs: [build, simulate-all]
uses: ./.github/workflows/reusable-examples.yml
with:
package-name: ${{needs.build.outputs.package-name}}
test-compiler: I386_GCC49
secrets: inherit
success:
if: ${{ !cancelled() }}
needs: [grs, grs-vhdl, examples]
runs-on: [self-hosted]
steps:
- name: Check GCC Regression Simple status
if: ${{ needs.grs.result != 'success' }}
run: exit 1
- name: Check GCC Regression Simple VHDL status
if: ${{ needs.grs-vhdl.result != 'success' }}
run: exit 1
- name: Check Examples status
if: ${{ needs.examples.result != 'success' }}
run: exit 1