diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9336b67..8aeb694 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,6 @@ name: serv ci -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] +on: [push, pull_request] jobs: compliance: @@ -13,38 +9,38 @@ jobs: steps: - uses: actions/checkout@v2 + with: + path: serv - name: install fusesoc, verilator and gcc run: | sudo apt-get install -y python3-setuptools verilator gcc-riscv64-unknown-elf - pip3 install --user fusesoc - echo "~/.local/bin" >> $GITHUB_PATH - - - name: init fusesoc - run: fusesoc init -y + pip3 install fusesoc - name: set SERV directory - run: echo "SERV=$GITHUB_WORKSPACE/.." >> $GITHUB_ENV + run: echo "SERV=$GITHUB_WORKSPACE/serv" >> $GITHUB_ENV - name: setup workspace - run: | - ls $GITHUB_WORKSPACE - mkdir $SERV/workspace - cd $SERV/workspace - fusesoc library add serv $SERV + run: fusesoc library add serv $SERV - name: build servant - run: | - cd $SERV/workspace - fusesoc run --target=verilator_tb --setup --build --build-root=servant_x servant + run: fusesoc run --target=verilator_tb --build --build-root=servant_x servant - name: download risc-v compliance - run: | - cd $SERV - git clone https://github.com/riscv/riscv-compliance + run: git clone https://github.com/riscv/riscv-compliance --branch 1.0 - - name: run risc-v compliance + - name: run RV32i compliance tests run: | - cd $SERV/riscv-compliance - make TARGETDIR=$SERV/serv/riscv-target RISCV_TARGET=serv RISCV_DECICE=rv32i RISCV_ISA=rv32i TARGET_SIM=$SERV/workspace/servant_x/verilator_tb-verilator/Vservant_sim + cd $GITHUB_WORKSPACE/riscv-compliance + make TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=rv32i RISCV_ISA=rv32i TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim + + - name: run RV32Zicsr compliance tests + run: | + cd $GITHUB_WORKSPACE/riscv-compliance + make TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=rv32i RISCV_ISA=rv32Zicsr TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim + + - name: run RV32Zifencei compliance tests + run: | + cd $GITHUB_WORKSPACE/riscv-compliance + make TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=rv32i RISCV_ISA=rv32Zifencei TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim