Jenkins+Python+unittest最後
(2020/05/06:追記)こっちを見たほうが良いです。
続きです。
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
ジョブの実行
以上で設定は完了です。試しにdevelopにpushしてみます。空コミットが便利です。
$ git commit --allow-empty -m '[Dev] Jenkins連携テスト' $ git push origin develop
Jenkinsから確認したとこと無事にジョブが実行されていました。
さて、本当はこの後developをmasterにマージするジョブを作りたかったのですが問題が発生しました。masterにマージしてpushするとこの記事で作っている単体テストジョブが実行されてしまいます。ちょっとJenkinsの実行トリガーから考え直さなければいけなくなりましたのでここまで。