GitLab マージ要求にモデル比較レポートを添付
この例では、GitLab CI/CD を使用して、GitLab® マージ要求およびプッシュ イベントに対する Simulink® モデルの差分の生成を自動化する方法を示します。比較レポートをマージ要求またはプッシュ イベントに自動的に添付して、MATLAB® や Simulink の外部で簡単に表示できるようにします。
前提条件
例を開いて、2 つの MATLAB コード ファイル (
diffGitLab_mergerequest.mとdiffGitLab_push.m) および YAML ファイル.gitlab-ci.ymlをダウンロードします。.gitlab-ci.ymlで定義されたジョブは、セルフホスト ランナーを使用します。セルフホスト ランナーを使用することで、ハードウェアのカスタマイズが可能になります。セルフホスト ランナーをリポジトリに追加するには、https://docs.gitlab.com/ee/tutorials/create_register_first_runner/#create-and-register-a-project-runner の手順に従います。使用しているセルフホスト ランナーに MATLAB と Simulink がインストールされていることを確認します。
あるいは、GitLab でホストされるランナーを使用する場合は、提供されている .gitlab-ci.yml ファイルの .matlab_defaults ブロックを更新します。GitLab でホストされるランナーは、MATLAB R2020b 以降のリリースを使用してビルドを実行するための MATLAB Container on Docker Hub を実装しています。詳細については、https://github.com/mathworks/matlab-gitlab-ci-template?tab=readme-ov-file#use-matlab-with-gitlab-cicd を参照してください。
GitLab CI/CD を使用した差分レポートの添付
GitLab CI/CD を使用して、YAML ファイルで定義されているワークフローを自動化できます。この例では、GitLab の main ブランチに対するプッシュ時およびマージ要求時でトリガーされるワークフローを設定する方法を示します。これらのワークフローでは、MATLAB コード ファイルを使用して以下を行います。
Git™ コマンドを使用して、変更されたモデル ファイルとその先祖のリストを取得します。
変更されたすべてのモデルをその先祖と比較し、
visdiff関数を使用して HTML 比較レポートをパブリッシュします。変更のピア レビューを実施するには、レポートのパブリッシュ時に DOCX ファイル形式を使用します。DOCX ファイルを使用すると、レビュー担当者はさまざまなブロックやパラメーターに関する詳細なコメントを残すことができます。完了したら、すべてのモデル比較レポートをジョブにアップロードします。
すべてのプロジェクト テストを実行します。
GitLab でパイプラインを設定するには、[+]、[Upload file] を選択して、MATLAB コード ファイルと .gitlab-ci.yml をリポジトリに追加します。その後、リポジトリをクローンして新しいコピーを作成します。あるいは、MATLAB でリポジトリにファイルを追加し、変更をリモート リポジトリにプッシュします。
これで、コミットを main ブランチにプッシュするか、開発用ブランチを main とマージするマージ要求を作成すると、設定したパイプラインがトリガーされます。ジョブが成功すると、コントリビューターとレビュー担当者は [Download artifacts] ボタンを使用してモデル比較レポートにアクセスできるようになります。

メモ
比較レポートにスクリーンショットを含めるには、ランナーにディスプレイが必要です。Linux® オペレーティング システムでは、ランナーにディスプレイがない場合、
xvfb-runを使用して、X11 ディスプレイ サーバー プロトコルを実装するディスプレイ サーバーでコマンドを実行できます。R2022b 以降では、ディスプレイのないマシンでジョブを実行する場合、比較ツールを使用してスクリーンショットのない比較レポートを生成できます。