tillitis / tillitis-key1

Board designs, FPGA verilog, firmware for TKey, the flexible and open USB security key 🔑
https://www.tillitis.se
391 stars 24 forks source link

CI #55

Closed mchack-work closed 1 year ago

mchack-work commented 1 year ago

CI for main repo: Probably at least do a complete build and run linters.

Maybe start things under Verilator.

secworks commented 1 year ago

I'll start looking into this. Possibly asking OlofK for help.

mchack-work commented 1 year ago

I pushed a container image built from contrib/Dockerfile to ghcr.io/tillitis/tkey-builder so it can be used by Github Actions. Not sure if we can keep it there since it's 2.3 GiB.

Also, see https://github.com/tillitis/tillitis-key1/pull/56 for some podman targets including a podman-run-make which actually builds the bitstream using a podman container.

quite commented 1 year ago

I've added basic CI. On push to main and on PR it does:

Also @secworks I see we have a make lint target that uses verilator for linting, but there are quite some lint_issues.txt that should be fixed before we can run it automatically (perhaps some are related to verilator build currently breaking)

secworks commented 1 year ago

Regarding the warnings in lint_issues. All but one relates to issues in the ice40 cell library, and ports not assigned by Yosys when instantiating the cells. This is external to our design. The final warning relates to PicoRV32 using both blocking and non-blocking assignments for the same signal. This is bad coding, but will break the CPU functionality. Since we instantiate the PicoRV32 as a component, I've decided to ignore it too.

secworks commented 1 year ago

The "make verilator" target will be fixed. Not sure if we should run it as part of CI though. So "make", to build the whole FPGA including FW, and "make lint" should be in CI. IMHO.

quite commented 1 year ago

No we chose to not actually run verilator for now. And leave the spdx-ensure out for now.