このブログを検索

2016/11/14

Jenkinsからgitの差分を定期的にチェックする方法

特定ファイルの変換を追うためです。

master branchにマージされたcommitを定期的にみてある拡張子だけのファイルのリストを取得する。

  • Jenkins Plugin
https://wiki.jenkins-ci.org/display/JENKINS/Github+Plugin

  • Jenkins job config
- Build Triggers -> Poll SCM のSchedule
 : H/5 * * * * を指定
- Build ->  Add Execute shell
# 削除(D)以外の差分ファイル名を取得する。
git diff --diff-filter=d --name-only ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT} | grep -e ".*.ddl"


--diff-filter=d  がjenkinsのexecute shell からはうまく動かなかったから次のように修正。

```
# I can not use option --diff-filter=d. If you can fix this line
git diff --name-status ${GIT_PREVIOUS_COMMIT} ${GIT_COMMIT} | grep -i ".*.ddl" > list.txt

cat ${GIT_PATH}/list.txt | while read f
do
  if [[ "$f" == D* ]]; then
    echo $f | sed -e "s/D[<tab><space>]*//g" >> delete_list.txt
  else
    echo $f | tr '\t' ',' | sed -e "s/.,*//" >> change_list.txt
  fi
done
```


参考:
https://www.git-scm.com/docs/git-diff



0 件のコメント:

コメントを投稿