Skip to content

Commit ec8cb03

Browse files
ekiwiolofk
authored andcommitted
automate RISC-V compliance check with github actions
1 parent d6445b9 commit ec8cb03

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

.github/workflows/ci.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: serv ci
2+
3+
on:
4+
push:
5+
branches: [ master ]
6+
pull_request:
7+
branches: [ master ]
8+
9+
jobs:
10+
compliance:
11+
name: RISC-V Compliance Test
12+
runs-on: ubuntu-20.04
13+
14+
steps:
15+
- uses: actions/checkout@v2
16+
17+
- name: install fusesoc, verilator and gcc
18+
run: |
19+
sudo apt-get install -y python3-setuptools verilator gcc-riscv64-unknown-elf
20+
pip3 install --user fusesoc
21+
echo "~/.local/bin" >> $GITHUB_PATH
22+
23+
- name: init fusesoc
24+
run: fusesoc init -y
25+
26+
- name: set SERV directory
27+
run: echo "SERV=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV
28+
29+
- name: setup workspace
30+
run: |
31+
ls $GITHUB_WORKSPACE
32+
mkdir $SERV/workspace
33+
cd $SERV/workspace
34+
fusesoc library add serv $SERV
35+
36+
- name: lint
37+
run: |
38+
cd $SERV/workspace
39+
fusesoc run --target=lint serv
40+
41+
- name: build servant
42+
run: |
43+
cd $SERV/workspace
44+
fusesoc run --target=verilator_tb --setup --build --build-root=servant_x servant
45+
46+
- name: download risc-v compliance
47+
run: |
48+
cd $SERV
49+
git clone https://github.com/riscv/riscv-compliance
50+
51+
- name: run risc-v compliance
52+
run: |
53+
cd $SERV/riscv-compliance
54+
make TARGETDIR=$SERV/serv/riscv-target RISCV_TARGET=serv RISCV_DECICE=rv32i RISCV_ISA=rv32i TARGET_SIM=$SERV/workspace/build/servant_x/verilator_tb-verilator/Vservant_sim
55+

0 commit comments

Comments
 (0)