mirror of
https://github.com/antonblanchard/microwatt.git
synced 2026-01-13 07:09:54 +00:00
It also stores the dirty status so that's known. This does some Makefile tricks so that we only rebuild when the git hash changes. This avoids rebuilding the world every time we run make. Also adds fusesoc generator, so that should continue to work as before. Signed-off-by: Dan Horák <dan@danny.cz> Signed-off-by: Michael Neuling <mikey@neuling.org>
111 lines
2.4 KiB
YAML
111 lines
2.4 KiB
YAML
name: 'test'
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
schedule:
|
|
- cron: '0 0 * * 5'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
backend:
|
|
- llvm
|
|
- gcc
|
|
container: ghdl/vunit:${{ matrix.backend }}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: make GNATMAKE='gnatmake -j'$(nproc)
|
|
|
|
py:
|
|
needs: [build]
|
|
runs-on: ubuntu-latest
|
|
container: ghdl/vunit:llvm
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: |
|
|
apt update
|
|
apt install -y python3-pexpect
|
|
make -j$(nproc) test_micropython test_micropython_long
|
|
|
|
test:
|
|
needs: [build]
|
|
strategy:
|
|
fail-fast: false
|
|
max-parallel: 3
|
|
matrix:
|
|
task: [
|
|
"tests_console",
|
|
"{1..99}",
|
|
"{100..199}",
|
|
"{200..299}",
|
|
"{300..399}",
|
|
"{400..499}",
|
|
"{500..599}",
|
|
"{600..699}",
|
|
"{700..799}",
|
|
"{800..899}",
|
|
"{900..999}",
|
|
]
|
|
runs-on: ubuntu-latest
|
|
container: ghdl/vunit:llvm
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: bash -c "make -j$(nproc) ${{ matrix.task }}"
|
|
|
|
VUnit:
|
|
needs: [build]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: make git.vhdl
|
|
- uses: docker://ghdl/vunit:llvm
|
|
with:
|
|
args: python3 ./run.py -p10
|
|
|
|
symbiflow:
|
|
strategy:
|
|
fail-fast: false
|
|
max-parallel: 2
|
|
matrix:
|
|
task: [ ECP5-EVN, ORANGE-CRAB, ORANGE-CRAB-0.21 ]
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
DOCKER: 1
|
|
FPGA_TARGET: ${{matrix.task}}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: make microwatt.json
|
|
- run: make microwatt.bit
|
|
- run: make microwatt.svf
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: ${{matrix.task}}-bitstream
|
|
path: microwatt.svf
|
|
|
|
# test building verilog target from yosys/nextpnr
|
|
verilog:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: make DOCKER=1 microwatt.v
|
|
|
|
verilator:
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
DOCKER: 1
|
|
FPGA_TARGET: verilator
|
|
RAM_INIT_FILE: micropython/firmware.hex
|
|
MEMORY_SIZE: 524288
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- run: |
|
|
sudo apt update
|
|
sudo apt install -y python3-pexpect
|
|
make -j$(nproc) test_micropython_verilator test_micropython_verilator_long
|