IBM Cloud Docs
ビルド・レコードの公開

ビルド・レコードの公開

Jenkins を使用してビルド・レコードを公開することで、プロジェクトを IBM Cloud® DevOps Insights に統合することができます。 ビルド・レコードは、ビルドが完了すると DevOps Insights に通知します。 このレコードには、アプリケーション名、ブランチ、ビルド ID、Git リポジトリーへの参照などのフィールドが含まれます。 テスト・レコードやデプロイメント・レコードを表示したり、DevOps Insights のポリシーを評価したりするには、ビルド・レコードを公開する必要があります。

IBM Cloud® DevOps Insights は、公開されたテスト・データに基づいてデプロイメント・リスクを追跡します。 Jenkins と DevOps Insights を統合する場合は、Jenkins プロジェクトから情報を収集するように DevOps Insights を計装します。 DevOps プロセスを可視化するために、収集された情報が DevOps Insights ダッシュボードに表示されます。

開始前に

ツールチェーンが必要です。 詳しくは、ツールチェーンの作成を参照してください。

Jenkins ツールをアプリのツールチェーンに追加します。 詳しくは、Jenkins の構成を参照してください。

Jenkins を使用したビルド・レコードの公開

これらの変数は、パイプラインを DevOps Insights に統合するために必要です。

Jenkinsの環境変数と定義
環境変数 定義
IBM_CLOUD_DEVOPS_API_KEY 呼び出し側のアプリケーションまたはユーザーを識別するためにアプリケーション・プログラミング・インターフェース (API) に渡される固有のコード。 API キーを Jenkins 資格情報として保管します。 (シークレット・テキスト・タイプ)。
IBM_CLOUD_DEVOPS_APP_NAME ツールチェーンがデプロイするアプリケーションの名前。 applicationName パラメーターがステップ・ジョブに渡されると、そのステップではこの値は無視されます。
IBM_CLOUD_DEVOPS_TOOLCHAIN_ID ツールチェーンの ID。

コマンドごとに、ツールチェーン ID を指定して環境変数をエクスポートする必要があります。 IBM Cloud® DevOps Insights プラグインは、これらの環境変数と資格情報を使用して DevOps Insights と対話します。 宣言パイプライン形式でこれらを設定する例を以下に示します。

environment {
        IBM_CLOUD_DEVOPS_API_KEY = credentials('BM_API_KEY')
        IBM_CLOUD_DEVOPS_APP_NAME = 'Weather-App'
        IBM_CLOUD_DEVOPS_TOOLCHAIN_ID = '1111111-aaaa-2222-bbbb-333333333'
    }

API キーの作成について詳しくは、『ユーザーの API キーの管理』を参照してください。

ツールチェーン ID の詳細については、ツールチェーン ID の確認を参照してください。

publishBuildRecord ステップでビルド・レコードを公開します。 このステップでは、4 つのパラメーターが必要です。 これには、1 つのオプション・パラメーターも指定できます。

ビルドレコードのパラメータと定義の公開
パラメーター 定義
gitBranch ビルドで使用する Git ブランチの名前。
gitCommit ビルドで使用する Git コミットの ID。
gitRepo Git リポジトリーの URL。
result ビルド・ステージの結果。 値は SUCCESS または FAIL です。
buildNumber オプション: バージョン番号を表す任意のストリングに設定された値。
applicationName オプション: アプリケーション名を設定します。 この値が環境変数に設定されている場合、IBM_CLOUD_DEVOPS_APP_NAME は無視されます。

コマンド例のパラメーターを以下に示します。

stages {
    Stage(`Build) {
        environmnet {
            // get git commit from Jenkins
            GIT_COMMIT = sh(returnStdout: true, script: 'git rev-parse HEAD').trim()
            GIT_BRANCH = 'master'
            GIT_REPO = 'https:github.com/xunronli-ibm/DemoDRA/'
        }
        steps {
            echo "building"
        }
        // post build section to use "publishBuildRecord" method to publish build record
        post {
            success {
                publishBuildRecord gitBranch: "${GIT_BRANCH}", gitCommit: "${GIT_COMMIT}", gitRepo: "${GIT_REPO}", result:"SUCCESS"
            }
            failure {
                publishBuildRecord gitBranch: "${GIT_BRANCH}", gitCommit: "${GIT_COMMIT}", gitRepo: "${GIT_REPO}", result:"FAIL"
            }
        }
    }
}

Jenkins パイプラインは、Git 情報を環境変数として表示しません。 コマンド sh(returnStdout: true, script: 'Git rev-parse HEAD').trim() を使用して、Git コミット ID を取得できます。

DevOps Insights のステップ

Cloud DevOps プラグインによって、4 つのステップがユーザーのために Jenkins パイプラインに追加されます。 これらのステップは、DevOps Insights との対話のためにパイプラインの中で使用します。 これらのステップを、パイプライン定義内のこれらのステップを実行する必要のある箇所に追加します。 例えば、テスト実行の後にテスト結果をアップロードし、アップロード後にゲートでそれらの結果を評価することができます。

DevOps Insightsの手順と使い方
手順 使用
publishBuildRecord ビルド情報を公開します
publishTestResult テスト結果を公開します
publishDeployRecord デプロイメント・レコードを公開します
evaluateGate ポリシーを適用します

デフォルトでは、バージョン番号は {pipeline name}:{build number} に設定されており、各ステップでカスタム・バージョン番号を設定することもできます。

サンプルのパイプラインとコード

以下は、宣言型Jenkinsファイルと スクリプト型Jenkinsファイルとして定義された2つの完全なパイプラインの例である。

Gitリポジトリには、サンプル nodejs アプリケーション・コード、テスト、Jenkinsファイルが含まれており、実験することができます。 リポジトリーをフォークして、実際の情報で Jenkins ファイルを変更します。

Jenkins 環境に NodeJS をインストールしていない場合は、node.js Jenkins プラグインをインストールする必要があります。 NodeJS をインストールした場合は、Jenkins ファイルの「ツール」セクションをコメント化できます。

ビルド頻度の表示

このビルド・ジョブが完了すると、ビルドが完了したことを示すメッセージがパイプラインによって DevOps Insights に公開されます。 ビルド・レコードは「ビルド頻度」ページで確認できます。 「ビルド頻度」ページを表示するには、以下の手順を実行します。

  1. IBM Cloudコンソールから、メニューアイコンハンバーガーアイコン>Platform Automation>Toolchains をクリックします。
  2. ツールチェーンを選択します。
  3. ツールチェーンの「概要」ページの**「IBM Cloud ツール」カードで、「DevOps Insights」**をクリックします。
  4. **「ビルド頻度」**をクリックします。

次のステップ

Jenkins を使用してデプロイメント・レコードを公開する方法を学習します。