5

生徒の課題の採点システムを可能な限り自動化したいと考えています。理想的には、課題を提出するときにこれらの手順を実行します。

  1. 学生が私のGithubリポジトリをフォークし、ファイルを変更します
  2. 学生はローカル コードを自分のリポジトリにプッシュし、プル リクエストを作成します
  3. Travis CIがプル リクエストを検出し、プル リクエスト ビルドを実行する
  4. コードが正常にビルドされると、Coverityはプル リクエストの静的コード分析を実行します。
  5. 学生はGithubプル リクエスト ページからビルド ステータスを取得します

レポ内のすべてのプル リクエストに対して Travis ビルドを正常に設定しました。レポのすべてのコミットに対して、Travis を介して Coverity スキャンを正常に実行しました。しかし、プル リクエストに対して Coverity スキャンをトリガーすることはできません。Travis ビルドのみが実行されます。この問題を修正して、プル リクエストごとに Coverity スキャン レポートを維持することはできますか?

これは私の.travis.yml

language: c
compiler: gcc

env:
  global:
   # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
   #   via the "travis encrypt" command using the project repo's public key
   - secure: "WHkT1bLbpz8VA8tl+qyZvWHLg7YvnMPhCNXCEAQQaklcDq8HQ7glIrrs35VnTDfs09tVgkPbgsAfwBuwxqkmmxWaquW0AHdb6cefNpQVj2ovUriQVNBFmjfte9Bbq0NWKoLp+4IY/3IDfLoUOekOIDXuQtkJhNvX1zkkt21lSeo="

addons:
  coverity_scan:
    project:
      name: "Freeuni-CN101-2014/midterm"
      description: "Build submitted via Travis CI"
    notification_email: example@mail.com
    build_command_prepend: ""
    build_command:   "make"
    branch_pattern: "*"

script: make

プルリクエストの Travis 出力はこちら

プル リクエストをメイン ブランチにマージした後の Travis の出力はこちら

4

2 に答える 2

2

コベリティのサポートに問い合わせたところ、回答がありました

Coverity Scan のトリガーは、プル リクエストではなく特定のブランチに対して発生し、特に .travis.yml に記載されているブランチに対して発生します。

アップデート

ユーザー @Admaster の助けを借りて、Jenkins とcppcheckプラグインを使い始めました。Jenkins は、ビルド ステータスを Github コミットに設定せずにプル リクエストを正常にスキャンしています (Travis は設定します)。

ここに画像の説明を入力

それで、私は Travis の実験を続け、このレポにたどり着きました。.travis.yml私はこのように見える私のファイルを変更しました

language: c
compiler: gcc

before_install:
  - sudo apt-get install -qq cppcheck

script:
  - cppcheck --error-exitcode=1 --quiet .
  - make

cppcheck は Coverity ほど効果的ではないかもしれませんが、学生の課題には十分です。

于 2014-11-06T20:46:47.510 に答える
-2

無料アカウントには多くの制限があるため、Coverity を使用しないことをお勧めします。Jenkinsを使用することをお勧めします。私は特にあなたのために設定をしようとします。Jenkins は github でプル リクエストをサポートします

于 2014-11-07T13:25:37.580 に答える