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