RAD Studio アプリケーションのローカライズ

RAD Studio アプリケーションのローカライズに使うリソース DLL プロジェクトについてなのですが、フォルダーに XLIFF 形式のファイルが作られるので、Transifex のような外部サービスを使って翻訳できるのかと思ったら、全く読み込んでくれませんでしたね。リソース DLL プロジェクトは RAD Studio コマンド プロンプトから MSBuild を使ってビルドすることもできませんし、全く困ったものです。

Jenkins 用 RAD Studio Plugin

過去記事を調べてみたらブログには書いてなかったことに気づいたので、改めて RAD Studio Plugin を紹介しておきます。

このプラグインの機能は、RAD Studio (Delphi もしくは C++Builder) のプロジェクトを簡単にビルドできるようにするだけです。必要な環境変数の設定は RAD Studio コマンド プロンプト用のバッチファイルから読み取るので、RAD Studio 各バージョンのインストール先をそれぞれ設定しておけば、ビルドに利用するバージョンを選択して、プロジェクトファイルと MSBuild のコマンド スイッチを指定するだけで、ビルドすることができます。もうバッチ ファイルで細工する必要ありません。

もし役に立つと感じたら、フィードバックをいただけるとありがたいです。

RAD Studio のパッケージ プロジェクトを Jenkins でビルドしてみた

RAD Studio のパッケージ プロジェクトを Jenkins を使ってバージョン別にバッチ ビルドするようにしてみたので記載する。

Jenkins スレーブ ノードの設定

RAD Studio を使ってビルドを実行するために、まず RAD Studio をインストールした PC を Jenkins のスレーブ ノードとして設定する。パッケージ プロジェクトを RAD Studio のバージョンごとにビルドを実行するために、ここで RAD Studio の各バージョンを識別するラベルを列挙しておく。

jenkins-slave-1

今回はビルド実行時に手動でスレーブを起動するので、起動方法を JNLP 経由とし、また可用性も必要時だけオンラインにする設定とする。(注: Windows のサービスとして登録しておけば常時オンラインにすることもできるのだが、RAD Studio のライセンス上「指名ユーザー」だけが使用しなければならないことになっているので、手動で起動することにした。)

さらに Jenkins プロジェクトでスレーブ ノードの環境を設定するために、環境変数 BDS と BDSCOMMONDIR のバージョンごとの値を設定しておく。(注: BDSINCLUDE は BDS の値から設定可能なので省略した。)

jenkins-slave-2

Jenkins マルチ構成プロジェクトの設定

パッケージ プロジェクトを RAD Studio のバージョンごとにビルドを実行するために、Jenkins でマルチ構成プロジェクトを設定する。マトリックスの設定でスレーブを軸に追加して、ビルドしたいラベルを選択しておく。

jenkins-job-1

さらに RAD Studio のバージョンごとに設定を切り替えるために、EnvInject プラグインを利用して必要な環境変数を設定する。

jenkins-job-2

ビルド実行には MSBuild プラグインを利用して、プロジェクト ファイルからビルドするように設定する。

jenkins-job-3

ビルドの実行

必要な設定が完了すれば、スレーブ エージェントを JNLP 経由で起動してマルチ構成プロジェクトのビルド実行を選択すれば、RAD Studio ごとにビルドが実行される。追加で成果物の保存を設定しておけば、ビルド後のバイナリー ファイルを簡単に取得することができる。