Skip to content

CSR: add mconfigptr and default to zero (backport #3446) #2288

CSR: add mconfigptr and default to zero (backport #3446)

CSR: add mconfigptr and default to zero (backport #3446) #2288

# This file describes the GitHub Actions workflow for continuous integration of rocket-chip.
#
# See
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions
# for API reference documentation on this file format.
name: Continuous Integration
on:
push:
branches:
- master
pull_request:
branches:
- master
- chisel3_port
jobs:
prepare-riscv-tools-cache:
name: Prepare riscv-tools Cache
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- id: cache
uses: actions/cache@v2
with:
path: |
./regression/install
./regression/stamps/rocket-tools_checkout.stamp
key: riscv-tools-${{ hashFiles('./riscv-tools.hash') }}-v2
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: sudo xargs apt-get install -y < .github/workflows/apt-packages.txt
- if: steps.cache.outputs.cache-hit != 'true'
env:
CXX: g++
CC: gcc
run: make tools -C regression SUITE=none
prepare-verilator-cache:
name: Prepare Verilator Cache
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2
with:
path: ./emulator/verilator
key: verilator-${{ hashFiles('./verilator.hash') }}-v2
# WARNING: The version of gcc used to compile Verilator MUST match the
# version of gcc used to compile the fesvr. There is some bug related to
# some C struct not being ABI-compatible across gcc 4 and 5, which we have
# not debugged yet.
- name: Install Dependencies
run: sudo xargs apt-get install -y < .github/workflows/apt-packages.txt
- env:
CXX: g++
CC: gcc
run: make verilator -C regression SUITE=none
# This job is defined as a matrix job, where the definitions of each test
# bucket is located in a shell script at ./regression/run-test-bucket.
test:
name: Test
runs-on: ubuntu-20.04
needs: [prepare-riscv-tools-cache, prepare-verilator-cache]
strategy:
fail-fast: false
matrix:
bucket: [1, 2, 3, 4, 5, 6, 7, 8, 9]
steps:
- uses: actions/checkout@v2
- name: Use riscv-tools Cache
uses: actions/cache@v2
with:
path: |
./regression/install
./regression/stamps/rocket-tools_checkout.stamp
key: riscv-tools-${{ hashFiles('./riscv-tools.hash') }}-v2
- name: Use Verilator Cache
uses: actions/cache@v2
with:
path: ./emulator/verilator
key: verilator-${{ hashFiles('./verilator.hash') }}-v2
- name: Use SBT Cache
uses: actions/cache@v2
with:
path: |
~/.cache/coursier
~/.sbt
key: sbt-${{ hashFiles('**/build.sbt') }}-v2
- name: Install Dependencies
run: |
sudo xargs apt-get install -y < .github/workflows/apt-packages.txt
python3 -m pip install pexpect==4.3.1
- env:
CXX: g++
CC: gcc
run: ./regression/run-test-bucket ${{ matrix.bucket }}
- if: failure()
name: Upload Artifacts on Failure
uses: actions/upload-artifact@v1
with:
name: test-bucket-${{ matrix.bucket }}-failures
path: emulator/output