Jenkinsでソースコードの差分をチェックする

gitやsubversionなどであればそれぞれのコミットごとの差分を取得することは可能ですが、例えばいくつかの修正をまとめてデプロイするときなどに、デプロイする時点のソースコードの差分をJenkinsで取得する方法です。

このジョブをデプロイ用のJenkinsのジョブの次のジョブとして実行するようにすれば、result.txtで差分のあるファイルを確認することができ、意図していないファイルが更新されていないかを知ることができます。

#!/bin/sh

cp /dev/null $WORKSPACE/result.txt

# 1つ前のファイル削除
rm -rf $WORKSPACE/last
mkdir -p $WORKSPACE/last

#コピー
cp -fRap $WORKSPACE/new/* $WORKSPACE/last

#別プロジェクトからソースコードをコピー
rm -rf $WORKSPACE/new
mkdir -p $WORKSPACE/new
shopt -s dotglob
cp -fRap $JENKINS_HOME/workspace/aipo/* $WORKSPACE/new
shopt -u dotglob
#jarファイルなど不要なファイルを消すためclean
cd $WORKSPACE/new
/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven3/bin/mvn clean

diff -qrb --exclude=.svn --exclude=.git  --exclude=.classpath --exclude=.gitattributes --exclude=.gitignore --exclude=.project  --exclude=.settings  --exclude=.tomcatplugin $WORKSPACE/new $WORKSPACE/last >> $WORKSPACE/result.txt