LoginSignup
2
1

More than 5 years have passed since last update.

Jenkinsジョブでdiffをとると失敗する際の回避方法

Last updated at Posted at 2018-06-30

現象

Jenkinsジョブでdiffを取り差異を確認しようとした際
ジョブが失敗してしまった。
(diff以外は成功しているのに...)

Connection to ***** closed.
Build step 'シェルの実行' marked build as failure
Finished: FAILURE 

原因

Jenkins実行されるシェルのデフォルトは

/bin/sh -xe

である。

  • -eオプション:終了コードが0でないものを返した時点でexitされる

→ diffで一致しなかった場合、0以外の終了コードを返すため、
  ジョブが失敗してしまう

解決策

1. 頭に#!/bin/shをつける

途中で0以外の終了コードが返っても、無視して実行し続けることができる。
ただし、他の処理が失敗した時も処理をし続けるためリスキー。

2. diffをとった箇所は必ずtrueを返すようにする※こちらを採用

diff A.txt B.txt || true
diffの実行時は必ずtrueを返すようにした。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1