Jenkins+svnで差分ビルドを行う方法

Jenkins+svnで差分ビルドを行う方法

Jenkinsでsvnからチェックアウトするとタイムスタンプがチェックアウトした時間になってしまいます。

追記—start

SVNサーバのC:\Users\ユーザ名\AppData\Roaming\Subversion配下のconfigの[miscellany]セクションに以下記述すると、コミットのタイムスタンプでチェックアウトできるようになります。

追記—end

差分だけを本番環境に移送を行いたかったので、svnと本番環境とファイルサイズが異なるファイルのみを判断してantで移送する必要がありました。

コマンドプロンプトのdirコマンドでサブフォルダ含めフルパスを取得することはできますが、サイズを取得することができません。

以下はフルパスを取得する方法です。/a-dでディレクトリ名は非表示にしています。

但し、これではファイルサイズが表示されませんので以下のような形式でテキストファイルに出力するようにしました。

以下コマンドで取得可能です。

これでsvn.txtにファイル名とファイルサイズを|で区切ったファイルが出力されます。

次にsvn.txtをsortコマンドでアルファベット順にソートします。

これでsvn_sort.txtはアルファベット順になります。

同様にこの一覧のコマンドを本番でも実行し、production_sort.txtを作成します。

この二つのファイルをfcコマンドで比較します。

これで比較できると思ったのですが、dirコマンドはフルパスでファイル名を出力します。

そのため、svnサーバのディレクトリ位置と本番サーバ位置が異なる為、diffをするとディレクトリ部分が異なると判断されます。

以下、例です。

D:\Jenkins\workspace\it_deploy\src\jp\co\confrage\A10Batch.java|4910

\xxx.xxx.xxx.xxx\d$\~\WEB-INF\classes\jp\co\confrage\A10Batch.java|4910

希望は以下の通りです。

A10Batch.java|4910

A10Batch.java|4910

ということでファイル名の未出力するように変更します。

do echo %i^|%~ziを、do echo %nxi^|%~ziに変更しました。これでファイル名の一覧が表示されるようになります。

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA