Linux用Jenkinsソフトウェアを使ってバッチモードでRiviera-PROを使う

はじめに

このアプリケーションノートでは、Linux用Jenkinsツールを使用してバッチモードでRiviera-PROを使用する方法について説明します。プロセス全体を理解するために、すべての重要なセグメントについて説明します。まず、Jenkinsというツールについて理解しましょう。

  • Jenkinsとは何ですか?

    Jenkinsは自己完結型のオープンソース自動化サーバーで、ソフトウェアのビルド、テスト、デプロイなど、あらゆるタスクの自動化に使用できます。Jenkinsは、ネイティブシステムパッケージやDockerを通じてインストールでき、Javaランタイム環境がインストールされている任意のマシンでスタンドアロンで実行することができます。これは作業しているプラットフォームに関係なく、プロジェクトの継続的インテグレーションと継続的デリバリーを可能にする強力なアプリケーションです。オープンソースのアプリケーションであり、あらゆる種類のビルドや継続的インテグレーションに対応できます。

  • なぜJenkinsなのか?

    Jenkinsは継続的ンテグレーションを可能にするソフトウェアです。Jenkinsは、セントラルビルドが行われるサーバーにインストールされます。下記のフローチャートは、Jenkinsがどのように機能するかを示す非常に単純なワークフローを示しています。

    Figure 1: Jenkins フローチャート

  • 継続的インテグレーションとは?

    継続的インテグレーションとは、開発者が定期的にコードを共有リポジトリに統合することを要求する開発手法です。継続的インテグレーションでは、開発者が頻繁にビルドを行う必要があります。一般的なプラクティスは、コードのコミットが発生するたびにビルドをトリガーする必要があります。スタンドアロンのJenkinsディストリビューションは、Java 8以上を推奨しています。以下の手順に従って、Jenkinsをダウンロードして実行します。

    1. Jenkinsをダウンロード

    2. Jenkinsが保存されているディレクトリでターミナルを開き、jar -xvf jenkins.warを実行します。

    3. http://localhost:8080をアクセスし、指示に従ってインストールを完了します。

Jenkins-Riviera-PROレグレッションテスト:

Jenkinsを使ったRiviera-PROのサンプルの実行について、ステップ・バイ・ステップで理解していきます。

  1. Jenkins

    • ユーザー名とパスワードを入力すると、ユーザーホーム画面になります。

      Figure 2: Welcome to Jenkins

  2. Jenkinsの管理

    • Jenkinsを管理するには、左側のメニューからManage Jenkinsオプションをクリックします。これにより、ユーザーはJenkinsの様々な設定オプションを取得できるようになります。

      Figure 3: Manage Jenkins

    • Configure System

      ここでは、JDK、AntとMavenのバージョン、セキュリティオプション、電子メールサーバー、そのほかのシステム全体の詳細構成など、ビルドで使用するさまざまなツールへのパスを管理できます。Jenkinsはプラグインのインストール後に、必要な構成フィールドを動的に追加します。

    • Manage Plugins

      Jenkinsの機能を拡張するプラグインを追加、削除、または無効化/有効化します。

    • Reload Configuration from Disk

      Jenkinsは、すべてのシステムおよびビルドジョブ構成の詳細をXMLファイルとしてJenkinsのホームディレクトリに保存します。ビルド履歴もJenkinsのホームディレクトリに保存されます。あるJenkinsインスタンスから別のインスタンスにビルドジョブを移行する場合、または古いビルドジョブをアーカイブする場合、対応するビルドジョブディレクトリをJenkinsのビルドディレクトリに追加または削除する必要があります。単純に "Reload Configuration from Disk "オプションを使用すると、Jenkinsシステムとビルドジョブの設定を直接リロードできます。

    • System Information

      この画面には、現在のすべてのJavaシステムプロパティとシステム環境変数のリストが表示されます。ここで、Jenkinsが実行されているJavaのバージョンとすべてを正確に確認できます。

    • System Log

      Jenkinsのログファイルをリアルタイムで表示する便利な方法です。トラブルシューティングに使用されます

    • Load Statistics

      同時ビルド数やビルドキューの長さなど、Jenkinsインスタンスがどの程度ビジー状態であるかをグラフィカルに表示し、ビルドが実行されるまでにどれくらいの時間が必要かを把握することが出来ます。これらの統計は、インフラストラクチャの観点から余分な容量または余分なビルドノードが必要かどうかの良いアイディアが得られます。

    • Prepare for Shutdown

      JenkinsまたはJenkinsが稼働しているサーバーをシャットダウンする必要がある場合、ビルドの実行中はシャットダウンしないことをお勧めします。Jenkinsを正常にシャットダウンするために、ユーザはPrepare for Shutdownリンクを使用して、新しいビルドが開始されない様にすることが出来ます。

    • ダッシュボードの左側にあるNew Itemをクリックする。

      Figure 4: New Item

    • Freestyle projectをクリックする。

    • Okをクリックする

    • 項目名が確定すると、下図のような設定ウィンドウが開きます。

      Figure 5: Itemの設定

    • 設定ウィンドウでBuild Triggersタブをクリックする。

    • Jenkinsは、テストを実行するためのビルドステップを提供します。ビルドステップ内には様々なサポートレベルが用意されているため、ユーザは自分に都合の良いものを利用することができます。異なるステップとは Windowsバッチコマンドの実行、シェルの実行、およびトップレベルのMavenターゲットの起動します。このサンプルでは、Linuxを使用してRiviera-PROを起動しているするため、"Execute Shell"オプションを選択します。それを選択するとすぐに次のウィンドウが開きます。

      Figure 6: ビルドウィンドウ

    • コマンドウィンドウ内でsetenvファイルを呼び出し、Riviera-PROの環境変数を設定します。

    • 次に、vsimsaファイルを実行するためにshコマンドを実行します。

      • sh ./vsimsa -do /edatools/Aldec/Riviera-PRO-2020.10-x64/examples/coverage/coverage_database/keyboard_controller/src/runme.do

    • 以下は、ビルド時に実行されるスクリプトコマンドです。

      Figure 7: スクリプトコマンド

    • 次にSaveをクリックする。

    • Build Nowをクリックする。

    • Build Historyで、最新のビルドをクリックします。バッチモードツールが起動し、スクリプトが実行されます。Jenkins内部でビルドが成功すると、次のコンソールログとRiviera-PROコンソールログが表示されます。

      Figure 8: コンソール出力

      Figure 9: Riviera-PROのスクリプト実行

    • スクリプトが保存されているホームディレクトリに移動します。シミュレーションデータベースはそこに保存されます。

      注意: カバレッジ結果のhtmlファイルを作成する場合は、実行するスクリプトにそのコマンドを含めることが出来ます。

      Figure 10: 累積カバレッジ結果

      Figure 11: Test 1の結果

      Figure 12: Test 2の結果

Jenkinsの利点

  • Jenkinsは継続的インテグレーションサーバーです。

  • これには、すべてのテストが機能しているかどうかを常に把握し、迅速なフィードバックを得られるという大きな利点があります。迅速なフィードバックは重要で、ビルドを失敗した(コンパイル/ビルドサイクルまたはテストのいずれかを失敗させる変更を導入した)直後に、失敗した内容とそれを元に戻す方法を常に知ることができます。

  • テストを時々しか実行しない場合、前回実行したときから多くのコード変更が行われている可能性があり、どの変更で問題が発生したのかを把握するのが難しくなります。プッシュするたびに自動的にテストが実行されると、何が誰によって問題を引き起こされたかが常に明白になります。

  • CIは、ほとんどの開発者がコードベースを無傷に保つために従うプロセスになります。ほとんどの場合、グループ環境で作業する場合によく行われます。たとえば、新しい家を建設するようなものです。現場では複数の業者が作業を行います。窓ガラスを取り付けた後、塗装業者が来てペンキを塗ると、ガラスにペンキを落としてしまったり、ガラスを割ってしまったりする可能性が高くなります。そこで、検査員が毎日来て、何か壊れていないかどうかチェックします。新しいコードを構築する際にも同じプロセスが適用されます。CIシステムは、さまざまなエンジニアから全てのコードを集め、それが適切にコンパイルされ、ビルドされることを確認します。

免責事項:

このアプリケーションノートのテキストの多くは、提供されているオープンソースツールに関する参照したソース(Jenkins.com)から抜粋したものです。このアプリケーションノートの目的は、アルデック ユーザーの利益のためにデータを統合および整理し、簡素化されたツールフローを提示することです。

Ask Us a Question
x
Ask Us a Question
x
Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.
We use cookies to ensure we give you the best user experience and to provide you with content we believe will be of relevance to you. If you continue to use our site, you consent to our use of cookies. A detailed overview on the use of cookies and other website information is located in our Privacy Policy.