Help us understand the problem. What is going on with this article?

GitHub Actionsでcpplintを使ってみた

はじめに

GitHub Actionsを試しに使ってみたので備忘録程度に書きます。

GitHub Actions とは

https://help.github.com/ja/actions/automating-your-workflow-with-github-actions

GitHub標準のCI/CD機能。
GitHub上で発生するイベントをトリガーに、任意のアクションを実行できます。

cpplint とは

https://github.com/cpplint/cpplint

Google C++ Style Guide にそったコーディングスタイルで書かれているかチェックする静的解析ツール。

とはいえ、全て上記スタイルに適用させたいわけではないと思うのでfilterオプションを使い必要なものだけチェックするのが良いです。

# 例
cpplint --filter=-legal,-runtime/references --recursive .

workflow

https://github.com/cpplint/GitHub-Action-for-cpplint
cpplintで紹介されてたものをそのまま引用させていただきます。

リポジトリに .github/workflows/cpplint.yml ファイルを作成。(ファイル名はなんでもいい)

cpplint.yml
name: cpplint
on: [push, pull_request]
jobs:
  cpplint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - uses: actions/setup-python@v1
    - run: pip install cpplint
    - run: cpplint --recursive .

上記の場合はpushしたときとプルリクを作成したときをトリガーにcpplintが走ることになります。
(実際には先ほど述べたようにfilter等のオプションを追加で指定したりします。)

実行結果はGitHub上で確認できます。
2020-02-10.png

おまけ

Marketplaceで検索するとすでに用意されたアクションが見つかるので、特に問題なければそれを使用するのが楽です。

https://github.com/marketplace/actions/action-cpp-lint

cpplint.yml
name: cpplint
on: [push, pull_request]
jobs:
  cpplint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: action-cpp-lint
      uses: CyberZHG/github-action-cpp-lint@0.0.2
      with:
        args: --recursive . # cpplintのオプション

参考

https://it.impressbm.co.jp/articles/-/18498

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした