このアプリケーションノートでは、継続的インテグレーション(CI)のあるGitLabプロジェクトをRiviera-PROに接続し、RTLプロジェクトをシミュレートするために必要な情報を提供します。プロセスを明確にするために、重要なステップを説明します。最初にGitLabの構造から説明します。
GitLabは、継続的インテグレーション(CI)、継続的デリバリー、継続的デプロイメント(CD)を提供するウェブベースのDevOpsツールです。GitLabは、ユーザーが自分のリポジトリをGitLabまたは他ホスト上でホストすることを可能にし、CI/CD機能を利用することができます。GitLab CI/CDを利用するために、Gitプロバイダーを変更する必要はありません。CI/CD を実行するために必要なのは、特別な GitLab CI YAML 設定ファイルの存在だけです。"gitlab-ci.yml"ファイルは、GitLab CI/CDのための特定の命令を構成するYAMLファイルです。
"gitlab-ci.yml"ファイルでは、以下を定義できます:
実行するスクリプト
含めたいその他の設定ファイルやテンプレート
依存関係とキャッシュ
順次実行するコマンドと並列実行するコマンド
アプリケーションをデプロイする場所
スクリプトを自動的に実行するか、手動で実行するか
スクリプトはジョブにグループ化され、ジョブはより大きなパイプラインの一部として実行されます。複数の独立したジョブを定義された順序で実行するステージにグループ化できます。CI/CD構成には、非表示にされていないジョブが少なくとも1つ必要です。パイプラインは、継続的インテグレーション、デリバリ、およびデプロイメントのトップレベルのコンポーネントです。
何をすべきかを定義するジョブ。例えば、コードをコンパイルしたりテストしたりするジョブです。
ジョブを実行するタイミングを定義するステージ。例えば、コードをコンパイルするステージの後にテストを実行するステージなどです。
GitLab Runnerは、GitLab CI/CDと連携してパイプラインでジョブを実行するアプリケーションです。GitLab Runnerアプリケーションは、自分が所有または管理するインフラストラクチャにインストールすることを選択できます。また、GitLabインフラストラクチャの一部であるクラウド上のRunnerを使用することもできます。別々のマシンを使う場合、それぞれに異なるオペレーティングシステムや、KubernetesやDockerなどのツールを搭載することができます。GitLab Runnerはオープンソースで、Goで記述されています。単一のバイナリとして実行することができ、言語固有の要件は必要ありません。このアプリケーションノートでは、ローカルマシンにインストールしたローカルRunnerを使用します。
GitLabのウェブサイトにアクセスし登録
空プロジェクトの作成
プロジェクトに名前を付け、好みに応じて公開または非公開にします。
Upload Fileボタンを使用
gitを使用して既存のフォルダをプッシュ
そして新しいファイルを作成し、それを".gitlab-ci.yml"と名付けます。
すべてのプロジェクトファイルがGitLabに正しく追加されていることを確認します。
パイプラインを実行するには、ローカルマシンに GitLab Runnerをインストールする必要があります。ここでは、GitLabが提供するRunnerの完全なインストールドキュメントを紹介します。
Linuxシステム:
インストールファイルをこちらからダウンロードしてください
runnerのインストール:
CentOSまたはRed Hat Enterprise Linux: rpm -i gitlab-runnerarch.rpm
runnerの登録:
sudo gitlab-runner register
GitLabインスタンスのURL(例:https://gitlab.com/)を入力します
Runnerの登録時に取得したトークンを入力します
Runnerの説明を入力します
関連するタグを入力します: ci, ssh
Runnerの実行者を指定してください(例:shell)
Riviera-PROの環境変数を設定してください
Windowsマシン:
インストールファイルをこちらからダウンロードしてください
runnerのインストール:
システムに任意のフォルダ(例:C:GitLab-Runner)を作成し、その中にインストールファイルを転送します
GitLab Runnerのディレクトリと実行ファイルの書き込み権限を必ず制限してください。これらのパーミッションを設定しないと、一般ユーザーが実行ファイルを独自のものに置き換え、管理者権限で任意のコードを実行できます
管理者権限でコマンドプロンプトを実行します
runnerの登録:
”./gitlab-runner.exe register”を実行します
GitLabインスタンスのURL(例:https://gitlab.com/)を入力します
Runnerの登録時に取得したトークンを入力します
Runnerの説明を入力します
関連するタグを入力します: ci, ssh
Runnerの実行者を指定してください(例:shell)
GitLab Runnerをサービスとしてインストールし起動します
cd C:\GitLab-Runner
.\gitlab-runner.exe install
.\gitlab-runner.exe start
Riviera-PROの環境変数を設定してください
「コントロールパネル」→「システム」→「システムの詳細設定」→「環境変数」でRiviera-PROのパスが正しいか確認してください
パスが正しくない場合は、Riviera-PROの変数を選択して「編集」をクリックしてください
Riviera-PROのパスがシステムの環境変数やユーザーの環境変数として表示されていない場合は、新規を選択してパスを作成してください
Runnerが正常に動作していることを確認するには、/settings/CICD/を確認しrunnerを展開します。ページの下部にあるRunner名の横に緑の印が
あれば、動作しています。
Runnerの名前の横に黒い三角形がある場合は、管理者権限のコマンドプロンプトを実行して、” .\gitlab-runner.exe verify”を入力してください。その後、再度Runnerを確認してください。.
次ステップは、パイプラインを実行することです。 これを行うには、左側のサイドバーから"CI/CD"タブを選択し"Pipelines"をクリックします。 次に右上の"Run pipelines"をクリックします。
実行後、パイプラインIDをクリックしてビルドジョブをクリックすると、コンソールログが表示されます。ここでは私のプロジェクトのログの
一部を紹介します。
"Job failed…exec: "pwsh"…"というエラーメッセージが表示された場合は、config.tomlファイルを編集し、「pwsh」を「powershell」に置き換えてください。
次に gitlab-runner を再起動します: gitlab-runner.exe restart
onfig.tomlにコンテンツがないか、shell = "pwsh "という行が含まれていなかったりする場合は、config.toml ファイルを削除し、コマンドプロンプトを開いて次のように入力:.\gitlab-runner.exe stopし、手順8に従って新しいrunnerを作成します。
このアプリケーションノートのために選ばれたサンプルデザインでは、次セクションで簡単に紹介するコードカバレッジとテストランキングの機能が提供されています。runme.doファイルは、テストのコンパイル、初期化、シミュレーション、レポートの生成、テストランキングの生成を行う複数のコマンドで構成されています。このファイルは以下の図のようになっています。
コードカバレッジの結果をGitLabで可視化したい場合は、アプリケーションノート Coberturaをご参照ください。
Riviera-PROのカバレッジ結果はACDBデータベースに保存されます。この結果はacdb rankコマンドを使ってランク付けすることができます。acdb rankコマンドは、カバレッジスコア全体に対するテストの貢献度に基づいて結果を分類します。このコマンドを使用すると、1つのカバレッジ結果を他の結果と比較して、その使いやすさを判断することができます。テストランキング機能を使用すると、シミュレーション時間が長くなり、プロジェクトコストが増加するような過剰なテストを行っているかどうかを認識することができます。今回のアプリケーションノートで使用したサンプルデザインのテストランキング結果を見てみましょう。
結果は、コードカバレッジ100%を達成するために必要なテストは3つのみであり、残りの3つのケースは余分なものであることがわかります。この機能により、シミュレーションプロセスが迅速化され、大規模なプロジェクトの時間とコストを節約削減することができます。