@@ -30,87 +30,55 @@ jobs:
30
30
- ./tests/designs/litex_linux/arty.v
31
31
- ./conda_lock.yml
32
32
33
- Run-Nextpnr-Tests :
34
- runs-on : [self-hosted, Linux, X64]
35
- container : " ubuntu:20.04"
36
- strategy :
37
- fail-fast : false
38
- matrix :
39
- device : ["xc7a35t", "xc7a100t", "xc7a200t", "xc7s50", "xc7z010", "xczu7ev", "xc7k70t", "xc7k160t", "xc7k480t", "xc7vx980t", "LIFCL-40", "testarch"]
40
- env :
41
- LANG : " en_US.UTF-8"
42
- DEBIAN_FRONTEND : " noninteractive"
43
- GHA_EXTERNAL_DISK : " tools"
44
- XILINX_LOCAL_USER_DATA : " no"
45
- LC_ALL : " C"
46
- steps :
47
-
48
- - uses : actions/checkout@v2
49
- with :
50
- submodules : recursive
51
-
52
- - name : Install
53
- run : |
54
- apt-get -qqy update
55
- apt-get -qqy install build-essential git make locales libtinfo-dev \
56
- cmake python3 wget unzip curl openjdk-11-jdk-headless capnproto
57
- dpkg-reconfigure locales
58
- # Vivado is erroring out due to a missing library in CI.
59
- # https://support.xilinx.com/s/article/76585?language=en_US
60
- ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5
33
+ Matrix :
34
+ runs-on : ubuntu-latest
35
+ outputs :
36
+ matrix : ${{ steps.generate.outputs.matrix }}
61
37
62
- - name : Create environment
63
- run : make env
38
+ steps :
64
39
65
- - name : Build CMake
66
- run : |
67
- make build
68
- make update
40
+ - name : Setup repository
41
+ uses : actions/checkout@v3
69
42
70
- - name : Run tests
71
- run : |
72
- . github/scripts/tests.sh ${{ matrix.device }} vendor-bit-tests
43
+ - name : Generate examples matrix
44
+ id : generate
45
+ run : ./. github/scripts/generate_job_matrix.py ' ${{ github.repository }}'
73
46
74
- - name : Prepare report
75
- run : |
76
- cd build
77
- python3 ../utils/report_targets.py --log `find . -name "all-*-tests.log"` --csv report.csv --allowed-failures allowed-failures.log
78
47
79
- - uses : actions/upload-artifact@v2
80
- with :
81
- name : fpga-interchange-tests-${{ matrix.device }}
82
- path : |
83
- **/plot_*.svg
84
- build/report*.csv
48
+ Run-Tests :
49
+ needs : Matrix
85
50
86
- Run-VPR-Tests :
87
51
runs-on : [self-hosted, Linux, X64]
88
- container : " ubuntu:20.04 "
52
+
89
53
strategy :
90
54
fail-fast : false
91
55
matrix :
92
- device : ["xc7a35t", "LIFCL-40", "testarch"]
56
+ include : ${{ fromJson(needs.Matrix.outputs.matrix) }}
57
+
58
+ container : ${{ matrix.os }}:${{ matrix.os-version }}
59
+
93
60
env :
94
- LANG : " en_US.UTF-8"
95
- DEBIAN_FRONTEND : " noninteractive"
96
- GHA_EXTERNAL_DISK : " tools"
97
- XILINX_LOCAL_USER_DATA : " no"
98
- LC_ALL : " C"
61
+ LANG : en_US.UTF-8
62
+ DEBIAN_FRONTEND : noninteractive
63
+ GHA_EXTERNAL_DISK : tools
64
+ XILINX_LOCAL_USER_DATA : no
65
+ LC_ALL : C
66
+ CMAKE_FLAGS : -DPNR_TOOL=${{ matrix.tool }}
99
67
steps :
100
68
101
69
- uses : actions/checkout@v2
102
70
with :
103
71
submodules : recursive
104
72
73
+ - name : Install centos
74
+ if : ${{matrix.os == 'centos'}}
75
+ run : |
76
+ .github/scripts/centos-setup.sh
77
+
105
78
- name : Install
79
+ if : ${{ matrix.os == 'ubuntu' }}
106
80
run : |
107
- apt-get -qqy update
108
- apt-get -qqy install build-essential git make locales libtinfo-dev \
109
- cmake python3 wget unzip curl openjdk-11-jdk-headless capnproto
110
- dpkg-reconfigure locales
111
- # Vivado is erroring out due to a missing library in CI.
112
- # https://support.xilinx.com/s/article/76585?language=en_US
113
- ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5
81
+ .github/scripts/ubuntu-setup.sh
114
82
115
83
- name : Create environment
116
84
run : make env
@@ -119,27 +87,41 @@ jobs:
119
87
run : |
120
88
make build
121
89
make update
122
- env :
123
- CMAKE_FLAGS : " -DPNR_TOOL=vpr"
124
90
125
- - name : Run tests
91
+ - name : Run nextpnr tests
92
+ if : ${{ matrix.tool == 'nextpnr' }}
93
+ run : |
94
+ .github/scripts/tests.sh ${{ matrix.device }} vendor-bit-tests
95
+
96
+ - name : Run VPR tests
97
+ if : ${{ matrix.tool == 'vpr' }}
126
98
run : |
127
99
.github/scripts/tests.sh ${{ matrix.device }}
128
100
129
- - name : Prepare report
101
+ - name : Prepare nextpnr report
102
+ if : ${{ matrix.tool == 'nextpnr' }}
130
103
run : |
104
+ source env/conda/bin/activate fpga-interchange
105
+ cd build
106
+ python3 ../utils/report_targets.py --log `find . -name "all-*-tests.log"` --csv report.csv --allowed-failures allowed-failures.log
107
+
108
+ - name : Prepare VPR report
109
+ if : ${{ matrix.tool == 'vpr' }}
110
+ run : |
111
+ source env/conda/bin/activate fpga-interchange
131
112
cd build
132
113
python3 ../utils/report_targets.py --log `find . -name "all-*-tests.log"` --csv report.csv --allow-any-failure
133
114
134
115
- uses : actions/upload-artifact@v2
135
116
with :
136
- name : fpga-interchange-tests- ${{ matrix.device }}
117
+ name : fpga-interchange-tests_ ${{ matrix.device }}_${{ matrix.tool }}_${{ matrix.os }}
137
118
path : |
138
119
**/plot_*.svg
120
+ build/report*.csv
139
121
140
122
Prepare-Design-Status-Report :
141
123
runs-on : ubuntu-18.04
142
- needs : Run-Nextpnr- Tests
124
+ needs : Run-Tests
143
125
steps :
144
126
145
127
- uses : actions/checkout@v2
0 commit comments