このブログを検索

ラベル jenkins の投稿を表示しています。 すべての投稿を表示
ラベル jenkins の投稿を表示しています。 すべての投稿を表示

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



2013/11/27

使って便利と思ったjenkins plugin

  • File System SCM :ファイルシステムをSCMとして利用出来ます。  
  • Jenkins Clone Workspace SCM :ワークスペースにあるファイルを次のjobに渡せます。Pipelineとかで最初にgitから取得して検証環境に反映したソースが渡せるから確実に検証したままのソースを本番に反映出来ます。  
  • Sidebar Link:左サイードバーに自由にリンクの追加が出来ます。
  • Config File Provider Plugin:configファイル等をjenkinsの中で保存出来ます。  
  • Publish Over SSH : sshでファイルを送る事が出来ます。 
  • Timestamper:output consoleに実行時間・経過時間を表示出来ます。
  • Configuration Slicing:複数のjobの設定を一括で変更できます。全ての属性ができるわけでは無いですが、結構な数が出来ます。  
  • Thin Backup:jenkinsの設定をバックアップしてくれる。