[CI/CD] Update the flow. #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI/CD for Chisel Project | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '11' | |
distribution: 'adopt' | |
- name: Set up Scala | |
uses: olafurpg/setup-scala@v13 | |
with: | |
java-version: '11' | |
- name: Set up sbt | |
uses: olafurpg/setup-scala@v13 | |
with: | |
sbt-version: '1.5.5' | |
- name: Cache sbt dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ~/.sbt | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }} | |
restore-keys: | | |
${{ runner.os }}-sbt- | |
- name: Build Chisel project | |
run: sbt compile | |
- name: Generate Verilog | |
run: sbt "runMain Rs.GenRsBlockRecovery" | |
- name: Upload RsBlockRecovery.sv | |
uses: actions/upload-artifact@v2 | |
with: | |
name: RsBlockRecovery.sv | |
path: ./RsBlockRecovery.sv | |
coco_sim: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libunwind-dev | |
sudo apt-get install -y git help2man perl make autoconf g++ flex bison ccache numactl perl-doc | |
- name: Install Verilator | |
run: | | |
git clone https://github.com/verilator/verilator.git | |
cd verilator | |
git checkout v5.022 | |
autoconf | |
./configure | |
make -j$(nproc) | |
make install | |
rm -rf verilator | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.10' | |
- name: Install Python packages | |
run: | | |
pip install cocotb==1.8.1 | |
pip install reedsolo | |
- name: run sim | |
run: | | |
cd coco_sim | |
python3 rs_decoder.py -l RsBlockRecovery |