Awesome
Verible Formatter Action
Usage
See action.yml
This is a GitHub Action used to format Verilog and SystemVerilog source files and create change suggestions in Pull Requests automatically. The GitHub Token input is used to provide reviewdog access to the PR.
Here's a basic example to format all *.v
and *.sv
files:
name: Verible formatter example
on:
pull_request:
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: chipsalliance/verible-formatter-action@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
You can specify the files to format by setting the files
argument to a whitespace-separated list of file patterns.
The patterns are unix-like globs with support for ** (bash's "globstar").
To recursively search for *.v
and *.sv
files in the my_design
folder, you can set files
to 'my_design/**/*.{v,sv}'
By default files
has the value './**/*.{v,sv}'
. This searches for all *.v
and *.sv
files in the repository.
- uses: chipsalliance/verible-formatter-action@main
with:
files:
./rtl/my_file.sv
./rtl/module/*.sv
./testbench/**/*.{v,sv}
github_token: ${{ secrets.GITHUB_TOKEN }}
If you want to declare Verible version to be used,
you can pass its release tag in the input verible_version
:
- uses: actions/checkout@master
- uses: chipsalliance/verible-formatter-action@main
with:
verible_version: "v0.0-3100-gd75b1c47"
github_token: ${{ secrets.GITHUB_TOKEN }}
Additionally, you can add various flags to the formatter with the parameters
input:
- uses: chipsalliance/verible-formatter-action@main
with:
files:
./design/**/*.{v,sv}
parameters:
--indentation_spaces 4
--module_net_variable_alignment=preserve
--case_items_alignment=preserve
github_token: ${{ secrets.GITHUB_TOKEN }}
Automatic review on PRs from external repositories
In GitHub Actions, workflows triggered by external repositories may only have
read access to the main repository.
In order to have automatic reviews on external PRs, you need to change your workflow to trigger
on pull_request_target
event and manually check out changes from pull request:
name: Verible formatter example
on:
pull_request_target:
jobs:
format:
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Run Verible formatter action
uses: chipsalliance/verible-formatter-action@main
with:
github_token: ${{ secrets.GITHUB_TOKEN }}