Gitで打ったReleaseバージョンをプログラム側で参照できるようにする

こんにちは。

Gitで管理しているプロジェクトがあるのですが、そのプロジェクトでバージョン番号を表示したい、という要望が出てきました。
今まで何度かバージョン情報をプログラムや構成ファイルに表示させる、という要件がありました。
具体的にはAndroidアプリとかWordPressプラグインです。
その際には構成ファイルにバージョン情報を手書きで書いていて、アップデートをするたびにその都度書き直していました。

今回のプロジェクとはGitで全面的に管理していて、バージョンはreleaseブランチやタグを打つことで管理しています。
(ところでGithubですとタグを打てばバージョン情報が出てきて便利ですね。)
このGitで打ったバージョン情報をプログラム側で出力するようにしてみました。

まずはGitコマンドで直近のタグ情報を拾います。

$ git describe --tags

こんな感じでとれます。

ついでにgit logで最終更新日(最後のコミットが行われた日)を取得します。

$ git log -1 --format=%cd | date '+%Y%m%d'

それぞれのコマンドは現在のブランチ(やコミット)を基準に表示してくれます。

スクリプト化

上記2つを合わせて、プログラム側で表示するようにします。
今回のプロジェクトはCakePHPでしたので、バージョン情報をconfig/version.phpというファイルに書き出し、Configure系で呼び出すようにします。

version.phpの中身はこういうものを入れる想定です。

<?php $config['Version'] = '1.3.2-281-g08f7f8c 20180206';

このファイルを作るためのスクリプトは下記です。

TAG=`git describe --tags`
CD=`git log -1 --format=%cd | date '+%Y%m%d'`
echo $TAG $CD
echo "<?php \$config['Version'] = '${TAG} ${CD}';" > ../kp-event/config/version.php

あとはこのファイルをbootstrap.conf辺りで読み込んでおいて、呼び出したいところで適宜呼び出します。

// バージョン情報を読み込ませる
Configure::load( 'version' );
    <?php if ( Configure::read( 'debug' ) ) { ?>
        <div class="version" style="float: right; font-size: x-small;">
            <span style="color: black;">システムバージョン:</span>
            <span style="color: red;"><?= Configure::read('Version') ?></span>
        </div>
    <?php } ?>

すごく便利です!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする