継続的インテグレーションシステムでは、コードが送信されるたびに、あるいは毎時ごとに、ソースコードのコンパイルが自動的に開始されます。これにより、コード管理サーバー上でマージを確認することができます。
4D v19 では、新コマンドを使ってコードのコンパイルを起動できるようになったため、このタイプのシステムを設定することができます。
継続的インテグレーションとは?
継続的インテグレーションとは、ソースコードが変更されるたびに、その変更が開発されたアプリケーションにリグレッション (後退) をもたらさないことを確認することです。主な目的は、できるだけ早い開発の段階で統合の問題を検出することです。
新しいコマンド
新コマンド Compile Project で以下のプロジェクトがコンパイルができるようになりました:
- カレントプロジェクト
- カレントでないプロジェクト
コンパイルに成功した場合、このコマンドは successプロパティを持つ statusオブジェクトを返します。そうでなければ、エラーのリストを含む statusオブジェクトを返します。
カレントプロジェクトをコンパイルする
デフォルトの設定でカレントプロジェクトをコンパイルする方法は、非常に簡単です:
var $status : Object
$status:=Compile project()
コンパイルオプションをオーバーライドするには、指定したい値を持つオブジェクトを渡します。以下は、オーバーライドできるオプションです:
- コンパイルターゲット
- 型推論
- 数値やボタンのデフォルトの型
- シンボルの生成
- 型宣言メソッドの生成
- コンパイルに使用するコンポーネント
たとえば、ソースコントロールサーバー上でコードが送信されるたびに、マージされたコードを検証するための簡単なシンタックスチェックを起動することができます。
var $options; $status : Object
$options:=New object()
$options.targets:=New collection()
$status:=Compile project($options)
アプリケーションでコンポーネントを使用している場合は、コンパイル済みコンポーネントのリストを optionsオブジェクトで渡す必要があります。
var $options; $status : Object
var $component : 4D.File
$options:=New object()
$options.components:=Folder("/PACKAGE/Components").files(fk recursive).query("extension = .4dz")
$status:=Compile project($options)
別のプロジェクトをコンパイルする
別のプロジェクトからアプリケーションをコンパイルすることができます。コマンドにプロジェクトファイルを渡すだけです。
var $file : 4D.File
$file:=Folder(fk documents folder).file("Databases/myApp/Project/myApp.4DProject")
$status:=Compile project($file)
コンパイルエラーの管理
この新コマンドは、コンパイルが成功したかどうかを示す statusオブジェクトを返します。コンパイルに失敗した場合、4D はエラーメッセージのコレクション、関連するメソッド、そしてエラーの行番号を返します。
そして、METHOD OPEN PATHコマンドの新しいパラメーターのおかげで、コードエディターでメソッドを開き、エラー行にカーソルを置くことができます。
たとえば、エラーのコレクションをリストボックスに表示し、リストで選択されたエラーのメソッドを開くボタンを追加することが可能です:
METHOD OPEN PATH(Form.selected.code.path;Form.selected.line)
ご期待ください、継続的インテグレーションに関するブログはまだまだ続きます!