mirror of
https://github.com/riscv/riscv-opcodes.git
synced 2025-05-08 19:06:58 +08:00

Previously this generate a `instr_dict.yaml` file, however there is no need to use YAML here. The only advantages of YAML over JSON are that it is (debatably) easier for humans to write, making it suitable as human-edited input files. This is a machine-generated output file so JSON is better. The main advantages are: 1. It removes the dependency on PyYAML, which is the only external dependency of this project. Python external dependencies are quite a pain - PyYAML is a particularly troublesome one - and having no dependencies is very convenient (no need for venv etc.). 2. It means consumers of the file don't need to depend on PyYAML. Note this could have been done in an 100% backwards compatible way by keeping the file name unchanged (since JSON is valid YAML), however I figured there probably aren't that many users of this file, and since the only thing they need to change is the filename it's probably better to minimise confusion by renaming it. It also makes it clear that it is guaranteed to be JSON.
33 lines
797 B
YAML
33 lines
797 B
YAML
name: Opcodes generation
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.8
|
|
- name: Install Coverage
|
|
run: |
|
|
pip3 install coverage
|
|
- name: Run pre-commit
|
|
run: |
|
|
python3 -m pip install pre-commit
|
|
pre-commit run --all-files
|
|
- name: Generate
|
|
run: coverage run ./parse.py -c -chisel -sverilog -rust -latex -spinalhdl -go "rv*" "unratified/rv*"
|
|
- name: Check C output
|
|
run: cat encoding.out.h | cpp
|
|
- name: Generate coverage
|
|
run: coverage xml
|
|
- name: Upload coverage
|
|
uses: codecov/codecov-action@v2
|