From 8cfb9925e64b31ba94041895cbc624b4a9ceae11 Mon Sep 17 00:00:00 2001 From: Yinan Xu Date: Sun, 29 Dec 2024 23:02:13 +0800 Subject: [PATCH] feat(ci): use simpler build commands (#530) --- .github/workflows/main.yml | 322 ++++++++++++---------------------- .github/workflows/nightly.yml | 8 +- 2 files changed, 119 insertions(+), 211 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4d8c9d87b..611255f0d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,202 +44,148 @@ jobs: - name: Prepare environment run: | cd $GITHUB_WORKSPACE/.. - git config --global url."https://github.com/".insteadOf git@github.com: - git config --global url."https://".insteadOf git:// - git clone https://github.com/OpenXiangShan/xs-env - cd xs-env - sudo -s ./setup-tools.sh - source ./setup.sh + wget https://github.com/OpenXiangShan/xs-env/raw/refs/heads/master/install-verilator.sh + wget https://github.com/OpenXiangShan/xs-env/raw/refs/heads/master/setup-tools.sh + sudo bash setup-tools.sh - name: Prepare NutShell run: | - cd $GITHUB_WORKSPACE/../xs-env - rm -r NutShell + cd $GITHUB_WORKSPACE/.. git clone -b dev-difftest --single-branch https://github.com/OSCPU/NutShell.git - cd NutShell && git submodule update --init - rm -r difftest - cp -r $GITHUB_WORKSPACE . + cd NutShell && rm -rf difftest && cp -r $GITHUB_WORKSPACE . + echo "NOOP_HOME=$(pwd)" >> $GITHUB_ENV + echo "WORKLOAD=$(pwd)/ready-to-run/microbench.bin" >> $GITHUB_ENV + echo "REF_SO=$(pwd)/ready-to-run/riscv64-nemu-interpreter-so" >> $GITHUB_ENV - name: Simulation without DiffTest run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu NO_DIFF=1 EMU_TRACE=1 -j2 - ./build/emu -b 0 -e 100 -i ./ready-to-run/microbench.bin --dump-wave -C 10000 - ./build/emu -b 0 -e 100 -i ./ready-to-run/microbench.bin --dump-wave-full -C 10000 + ./build/emu -i $WORKLOAD --dump-wave -C 10000 + ./build/emu -i $WORKLOAD --dump-wave-full -C 10000 + make clean - name: Simulation with No Diff run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --no-diff + ./build/emu -i $WORKLOAD --no-diff - name: Basic Difftest run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + cd $NOOP_HOME + ./build/emu -i $WORKLOAD --diff $REF_SO - name: Basic Difftest without Image run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - ./build/emu -b 0 -e 0 --no-diff -C 10000 + cd $NOOP_HOME + ./build/emu --no-diff -C 10000 + make clean - name: Basic Difftest with PGO build run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make -C ./difftest clean_obj - make emu PGO_WORKLOAD=`realpath ready-to-run/microbench.bin` LLVM_PROFDATA=llvm-profdata PGO_EMU_ARGS="--diff `realpath ./ready-to-run/riscv64-nemu-interpreter-so` 2>/dev/null" -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + cd $NOOP_HOME + make emu PGO_WORKLOAD=$WORKLOAD LLVM_PROFDATA=llvm-profdata PGO_EMU_ARGS="--diff $REF_SO 2>/dev/null" -j2 + ./build/emu -i $WORKLOAD --diff $REF_SO + make clean - name: Difftest with Snapshot run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu EMU_SNAPSHOT=1 -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + ./build/emu -i $WORKLOAD --diff $REF_SO + make clean - name: Difftest with Trace run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu EMU_TRACE=1 -j2 - ./build/emu -b 10 -e 12 -i ./ready-to-run/microbench.bin --dump-wave --diff ./ready-to-run/riscv64-nemu-interpreter-so - ./build/emu -b 10 -e 12 -i ./ready-to-run/microbench.bin --dump-wave-full --diff ./ready-to-run/riscv64-nemu-interpreter-so + ./build/emu -b 10 -e 12 -i $WORKLOAD --dump-wave --diff $REF_SO + ./build/emu -e 12 -i $WORKLOAD --dump-wave-full --diff $REF_SO + make clean - name: Difftest with two threads run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu EMU_THREADS=2 -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + ./build/emu -i $WORKLOAD --diff $REF_SO + make clean - name: Difftest with Verilator Coverage run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME rm -rf *.coverage make emu EMU_COVERAGE=1 -j2 - ./build/emu -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so -C 10000 --dump-coverage + ./build/emu -i $WORKLOAD --diff $REF_SO -C 10000 --dump-coverage make -C difftest coverage ls -lh *.coverage + make clean - name: Difftest with DiffTrace run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu -j2 - ./build/emu -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so --dump-difftrace microbench - ./build/emu -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so --load-difftrace microbench + ./build/emu -i $WORKLOAD --diff $REF_SO --dump-difftrace microbench + ./build/emu -i $WORKLOAD --diff $REF_SO --load-difftrace microbench + make clean - name: Difftest with Footprints run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu -j2 - ./build/emu -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so --dump-footprints microbench.bin - ./build/emu -e 0 -i microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so --as-footprints + ./build/emu -i $WORKLOAD --diff $REF_SO --dump-footprints microbench.bin + ./build/emu -i microbench.bin --diff $REF_SO --as-footprints + make clean - name: Difftest with Batch run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu MILL_ARGS="--difftest-config B" -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + ./build/emu -i $WORKLOAD --diff $REF_SO + make clean - name: Difftest with Global DPI-C Enable run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu MILL_ARGS="--difftest-config E" -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + ./build/emu -i $WORKLOAD --diff $REF_SO + make clean - name: Difftest with Squash and Global Enable run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu MILL_ARGS="--difftest-config ES" -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + ./build/emu -i $WORKLOAD --diff $REF_SO + make clean - name: Difftest with Squash Batch and Global Enable run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu MILL_ARGS="--difftest-config ESB" -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so + ./build/emu -i $WORKLOAD --diff $REF_SO + make clean - name: Difftest with JsonProfile and DiffTestIOTrace run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu MILL_ARGS="--difftest-config ET" -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so --iotrace-name iotrace + ./build/emu -i $WORKLOAD --diff $REF_SO --iotrace-name iotrace cd difftest && export NOOP_HOME=$(pwd) - make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json NUMCORES=1 CONFIG=EL MFC=1 + make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json CONFIG=EL MFC=1 make emu WITH_CHISELDB=0 WITH_CONSTANTIN=0 -j2 - ./build/emu -b 0 -e 0 -i ../ready-to-run/microbench.bin --diff ../ready-to-run/riscv64-nemu-interpreter-so --iotrace-name ../iotrace + ./build/emu -i $WORKLOAD --diff $REF_SO --iotrace-name ../iotrace + make clean && make -C .. clean - name: Difftest with JsonProfile and DiffTestIOTrace-ZSTD run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make emu MILL_ARGS="--difftest-config ET" IOTRACE_ZSTD=1 -j2 - ./build/emu -b 0 -e 0 -i ./ready-to-run/microbench.bin --diff ./ready-to-run/riscv64-nemu-interpreter-so --iotrace-name iotrace + ./build/emu -i $WORKLOAD --diff $REF_SO --iotrace-name iotrace cd difftest && export NOOP_HOME=$(pwd) - make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json NUMCORES=1 CONFIG=EL MFC=1 + make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json CONFIG=EL MFC=1 make emu WITH_CHISELDB=0 WITH_CONSTANTIN=0 IOTRACE_ZSTD=1 -j2 - ./build/emu -b 0 -e 0 -i ../ready-to-run/microbench.bin --diff ../ready-to-run/riscv64-nemu-interpreter-so --iotrace-name ../iotrace + ./build/emu -i $WORKLOAD --diff $REF_SO --iotrace-name ../iotrace + make clean && make -C .. clean test-difftest-vcs: runs-on: ubuntu-22.04 @@ -256,143 +202,107 @@ jobs: - name: Prepare environment run: | cd $GITHUB_WORKSPACE/.. - git config --global url."https://github.com/".insteadOf git@github.com: - git config --global url."https://".insteadOf git:// - git clone https://github.com/OpenXiangShan/xs-env - cd xs-env - sudo -s ./setup-tools.sh - source ./setup.sh + wget https://github.com/OpenXiangShan/xs-env/raw/refs/heads/master/install-verilator.sh + wget https://github.com/OpenXiangShan/xs-env/raw/refs/heads/master/setup-tools.sh + sudo bash setup-tools.sh - name: Prepare NutShell run: | - cd $GITHUB_WORKSPACE/../xs-env - rm -r NutShell + cd $GITHUB_WORKSPACE/.. git clone -b dev-difftest --single-branch https://github.com/OSCPU/NutShell.git - cd NutShell && git submodule update --init - rm -r difftest - cp -r $GITHUB_WORKSPACE . + cd NutShell && rm -rf difftest && cp -r $GITHUB_WORKSPACE . + echo "NOOP_HOME=$(pwd)" >> $GITHUB_ENV + echo "WORKLOAD=$(pwd)/ready-to-run/microbench.bin" >> $GITHUB_ENV + echo "REF_SO=$(pwd)/ready-to-run/riscv64-nemu-interpreter-so" >> $GITHUB_ENV - name: Verilator Build with VCS Top (NO_DIFF) run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv NO_DIFF=1 VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +max-cycles=100000 + ./build/simv +workload=$WORKLOAD +max-cycles=100000 + make clean - name: Verilator Build with VCS Top (SYNTHESIS)(with DutZone) run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config Z" SYNTHESIS=1 VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +no-diff +max-cycles=100000 + ./build/simv +workload=$WORKLOAD +no-diff +max-cycles=100000 + make clean - name: Verilator Build with VCS Top (disable DPIC RAM/FLASH)(with DutZone) run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config Z" DISABLE_DIFFTEST_RAM_DPIC=1 DISABLE_DIFFTEST_FLASH_DPIC=1 VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +no-diff +max-cycles=100000 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so + ./build/simv +workload=$WORKLOAD +no-diff +max-cycles=100000 + ./build/simv +workload=$WORKLOAD +diff=$REF_SO + make clean - name: Verilator Build with VCS Top (with DutZone PerfCnt) run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config ZP" DIFFTEST_PERFCNT=1 VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +no-diff +max-cycles=100000 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so + ./build/simv +workload=$WORKLOAD +no-diff +max-cycles=100000 + ./build/simv +workload=$WORKLOAD +diff=$REF_SO + make clean - name: Verilator Build with VCS Top (with Batch InternalStep PerfCnt) run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config BIP" DIFFTEST_PERFCNT=1 VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +no-diff +max-cycles=100000 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so + ./build/simv +workload=$WORKLOAD +no-diff +max-cycles=100000 + ./build/simv +workload=$WORKLOAD +diff=$REF_SO + make clean - name: Verilator Build with VCS Top (with GlobalEnable Squash Replay Batch PerfCnt) run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config ESRBP" DIFFTEST_PERFCNT=1 VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +no-diff +max-cycles=100000 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so + ./build/simv +workload=$WORKLOAD +no-diff +max-cycles=100000 + ./build/simv +workload=$WORKLOAD +diff=$REF_SO + make clean - name: Verilator Build with VCS Top (with GlobalEnable Squash Replay Batch InternalStep NonBlock PerfCnt) run: | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config ESRBINP" DIFFTEST_PERFCNT=1 VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +no-diff +max-cycles=100000 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so + ./build/simv +workload=$WORKLOAD +no-diff +max-cycles=100000 + ./build/simv +workload=$WORKLOAD +diff=$REF_SO + make clean - name: Verilator Build with VCS Top (with workload-list) run : | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME echo "./ready-to-run/microbench.bin 10000" > list.txt echo "./ready-to-run/linux.bin 20000" >> list.txt make simv VCS=verilator WORKLOAD_SWITCH=1 -j2 - ./build/simv +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so +workload-list=./list.txt + ./build/simv +diff=$REF_SO +workload-list=./list.txt + make clean - name: Verilator Build with VCS Top (with JsonProfile and DiffTestIOTrace) run : | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config ZET" VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so +iotrace-name=iotrace + ./build/simv +workload=$WORKLOAD +diff=$REF_SO +iotrace-name=iotrace cd difftest && export NOOP_HOME=$(pwd) - make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json NUMCORES=1 CONFIG=ZEL MFC=1 + make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json CONFIG=ZEL MFC=1 make simv VCS=verilator WITH_CHISELDB=0 WITH_CONSTANTIN=0 - ./build/simv +workload=../ready-to-run/microbench.bin +e=0 +diff=../ready-to-run/riscv64-nemu-interpreter-so +iotrace-name=../iotrace + ./build/simv +workload=$WORKLOAD +diff=$REF_SO +iotrace-name=../iotrace + make clean && make -C .. clean - name: Verilator Build with VCS Top (with JsonProfile and DiffTestIOTrace-ZSTD) run : | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv MILL_ARGS="--difftest-config ZET" VCS=verilator IOTRACE_ZSTD=1 -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +e=0 +diff=./ready-to-run/riscv64-nemu-interpreter-so +iotrace-name=iotrace + ./build/simv +workload=$WORKLOAD +diff=$REF_SO +iotrace-name=iotrace cd difftest && export NOOP_HOME=$(pwd) - make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json NUMCORES=1 CONFIG=ZEL MFC=1 + make difftest_verilog PROFILE=../build/generated-src/difftest_profile.json CONFIG=ZEL MFC=1 make simv VCS=verilator WITH_CHISELDB=0 WITH_CONSTANTIN=0 IOTRACE_ZSTD=1 - ./build/simv +workload=../ready-to-run/microbench.bin +e=0 +diff=../ready-to-run/riscv64-nemu-interpreter-so +iotrace-name=../iotrace + ./build/simv +workload=$WORKLOAD +diff=$REF_SO +iotrace-name=../iotrace + make clean && make -C .. clean - name: Verilator Build with VCS Top (with LogPerf and WarmUp) run : | - cd $GITHUB_WORKSPACE/../xs-env - source ./env.sh - cd $GITHUB_WORKSPACE/../xs-env/NutShell - source ./env.sh - make clean + cd $NOOP_HOME make simv VCS=verilator -j2 - ./build/simv +workload=./ready-to-run/microbench.bin +b=0 +e=-1 +diff=./ready-to-run/riscv64-nemu-interpreter-so +max-instrs=5000 +warmup_instr=1000 + ./build/simv +workload=$WORKLOAD +b=0 +e=-1 +diff=$REF_SO +max-instrs=5000 +warmup_instr=1000 + make clean diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index f11c89d56..4d4ce179b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -24,11 +24,9 @@ jobs: - name: Prepare environment run: | cd $GITHUB_WORKSPACE/.. - git config --global url."https://github.com/".insteadOf git@github.com: - git config --global url."https://".insteadOf git:// - git clone https://github.com/OpenXiangShan/xs-env - cd xs-env - sudo -s ./setup-tools.sh + wget https://github.com/OpenXiangShan/xs-env/raw/refs/heads/master/install-verilator.sh + wget https://github.com/OpenXiangShan/xs-env/raw/refs/heads/master/setup-tools.sh + sudo bash setup-tools.sh - name: Build the coverage-guided fuzzer - xfuzz run: |