ビルド・レコードの公開
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 に統合するために必要です。
環境変数 | 定義 |
---|---|
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 との対話のためにパイプラインの中で使用します。 これらのステップを、パイプライン定義内のこれらのステップを実行する必要のある箇所に追加します。 例えば、テスト実行の後にテスト結果をアップロードし、アップロード後にゲートでそれらの結果を評価することができます。
手順 | 使用 |
---|---|
publishBuildRecord |
ビルド情報を公開します |
publishTestResult |
テスト結果を公開します |
publishDeployRecord |
デプロイメント・レコードを公開します |
evaluateGate |
ポリシーを適用します |
デフォルトでは、バージョン番号は {pipeline name}:{build number} に設定されており、各ステップでカスタム・バージョン番号を設定することもできます。
サンプルのパイプラインとコード
以下は、宣言型Jenkinsファイルと スクリプト型Jenkinsファイルとして定義された2つの完全なパイプラインの例である。
Gitリポジトリには、サンプル nodejs アプリケーション・コード、テスト、Jenkinsファイルが含まれており、実験することができます。 リポジトリーをフォークして、実際の情報で Jenkins ファイルを変更します。
Jenkins 環境に NodeJS をインストールしていない場合は、node.js Jenkins プラグインをインストールする必要があります。 NodeJS をインストールした場合は、Jenkins ファイルの「ツール」セクションをコメント化できます。
ビルド頻度の表示
このビルド・ジョブが完了すると、ビルドが完了したことを示すメッセージがパイプラインによって DevOps Insights に公開されます。 ビルド・レコードは「ビルド頻度」ページで確認できます。 「ビルド頻度」ページを表示するには、以下の手順を実行します。
- IBM Cloudコンソールから、メニューアイコンの
>Platform Automation>Toolchains をクリックします。
- ツールチェーンを選択します。
- ツールチェーンの「概要」ページの**「IBM Cloud ツール」カードで、「DevOps Insights」**をクリックします。
- **「ビルド頻度」**をクリックします。
次のステップ
Jenkins を使用してデプロイメント・レコードを公開する方法を学習します。