GitHub Actions 上で svlint を走らせる


はじめに

ゴミコード生産者を吊るし上げる コーディングルールの大切さを啓蒙するには、コーディングルールに則っているか、リントチェックを高い頻度で行うことが大切です。

svlint を使えば、RTL 等 SystemVerilog で書かれたソースコードのリントチェックを行うことが出来ます。GitHub Actions を使って、push 時に自動でリントチェックを実行できるようにしてみました。

設定方法

やることは簡単です。.github/workflows に実行したい処理の流れを書いた YAML を置くだけです。作者様謹製の svlint 用の Action が公開されています。これを使えば、簡単に GitHub Actions 上で svlint を実行することが出来ます。

例として、筆者が使用している YAML ファイルを載せておきます。

name: svlint

on: [push, pull_request]

jobs:
  svlint:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Run svlint
        uses: dalance/svlint-action@v1
        with:
          filelists: |
            rtl/common/compile.f
            rtl/router/compile.f
            rtl/fabric/compile.f
            rtl/axi_adapter/compile.f
        env:
          TNOC_HOME: ${{ github.workspace }}

実行例

上記の YAML を GitHub のリポジトリ上に置いておくと、push や Pull Request が開かれた時に、自動的に svlint を実行し、リントチェックを実施できます。ソースコード上に不適切な記述があると、以下のように指摘され、GitHub 上の通知欄にも通知されます。