#oyasuminase

駆け出しオタクエンジニア

Jenkins+Python+unittest最後

(2020/05/06:追記)こっちを見たほうが良いです。

oyasuminase.hatenablog.com


続きです。

oyasuminase.hatenablog.com

GitHubのdevelopへのpushをトリガーにJenkinsのジョブを実行します。

1. unittet実行

Jenkins

  • Jenkinsの管理>プラグインの管理より「Conditional BuildStep」をインストール。
  • Jenkinsの管理>ユーザーの管理>(ユーザー)>設定>より「Add new Token」を選択してJenkinsにアクセスするためのAPIトークンを取得する。
  • ジョブ>設定>ビルド・トリガの「リモートからビルドにチェック」してURLをメモする。
  • ビルド手順の追加より「Conditional step(Single)」を選択して下記の通り設定。
項目
Run? Regular Expression Match
Expression ."ref":"refs\/heads\/develop".
Label ${ENV,var="payload"}
On evaluation failure Don't run
Builder Virtualenv Builder

shellは前と同じ内容です。

pip install -r requirements.txt
coverage run --source='dokipro1' -m xmlrunner -o test-reports
coverage xml -o coverage/result.xml

GitHub

  • リポジトリ>Settings>Webhooksより「Add webhook」を選択してい先程メモしたURLとAPIトークンを設定する。

ジョブの実行

以上で設定は完了です。試しにdevelopにpushしてみます。空コミットが便利です。

$ git commit --allow-empty -m '[Dev] Jenkins連携テスト'
$ git push origin develop

Jenkinsから確認したとこと無事にジョブが実行されていました。

さて、本当はこの後developをmasterにマージするジョブを作りたかったのですが問題が発生しました。masterにマージしてpushするとこの記事で作っている単体テストジョブが実行されてしまいます。ちょっとJenkinsの実行トリガーから考え直さなければいけなくなりましたのでここまで。