Dev Tools > Pipeline > コンソール使用ガイド > Pipeline Management

パイプラインの作成

Pipelineはアプリケーション配布フローを1つ以上のステージで構成したパイプラインとして保存します。パイプライン作成ではソースコードのビルド > コンテナイメージの作成 > コンテナイメージのアップロードコンテナイメージの配布の順序で動作する基本的なパイプラインを作成でき、パイプラインテンプレートファイルをアップロードしてパイプラインを作成することも可能です。

pipeline-guide-01

パイプライン管理パイプライン作成をクリックします。パイプラインの作成は、次の手順で進めます。 - パイプライン情報の入力 - ソース設定 - ビルド設定 - 配布設定 - 最終検討およびパイプラインの作成

パイプライン情報の入力

パイプラインの基本情報を入力します。

pipeline-guide-33

パイプライン名、パイプラインの説明を入力し、 次へをクリックします。

追加でパイプラインテンプレートファイルでパイプラインを作成することも可能です(パイプラインテンプレートファイルはJSONファイルを使用します)。

pipeline-guide-34

パイプライン名、パイプラインの説明を入力し、パイプラインテンプレートファイルをアップロードして次へをクリックします。

ソース設定

NHN Cloudビルドツールでソースコードをビルドするときに使用するソースリポジトリを設定します。 NHN Cloudビルドツールを使用しない場合や、NHN Cloudビルドツールでソースコードをビルドしない場合は省略できます。

pipeline-guide-03

ステージ名、環境設定で登録したソースリポジトリ、ソースコードをビルドする対象ブランチ(git branch)を入力し、次へをクリックします。

ビルド設定

ビルド設定では、NHN Cloudビルドツールや、環境設定で登録したビルドツールを使用できます。ステージ名を入力し、ビルドツールで使用するビルドツールを選択します。

pipeline-guide-04.png

ビルド番号はビルドごとに増加する数値型データです。イメージタグフォーマットを使用する場合はタグが_{BUILD_NUMBER}形式で固定されます。 NHN Cloudビルドツールを使用すると、別途のソフトウェアインストールなしで、ソースリポジトリに保存したアプリケーションのソースコードをビルドして、 ビルドしたアプリケーションでコンテナイメージを作成し、作成したコンテナイメージをイメージリポジトリにアップロードできます。

ビルド環境設定にはビルドマシンの性能、ビルド時間制限を入力できます。
ソースビルド設定で設定したソースコードを使用してアプリケーションをビルドする方法を入力します。 ソースコードビルドに使うコンテナイメージ、ビルドに使うコマンドを入力します。 ドッカーイメージビルド設定にはビルドしたアプリケーションでコンテナイメージを作る方法を入力します。 コンテナイメージを作成する時に使うDockerfile、作成したコンテナイメージをアップロードするイメージストア、アップロードするコンテナイメージの名前とタグを入力できます。
タグにはイメージタグフォーマットを使用できます。タグフォーマットを使用すると、タグフォーマット部分だけ置換して動的にタグを付与してイメージをイメージストアにアップロードします。
置換される形式と同じ形式でタグを入力すると、タグフォーマットの使用がスムーズにできない場合があります。

イメージタグフォーマット 置換される形式 説明
{BUILD_DATE_TIME} yyyy-MM-dd_HH_mm_ss 年-月-日_時_分_秒の形でビルド実行時刻に置換されます。

pipeline-guide-05 NHN Cloudビルドツールでアーティファクト設定を使用して開始条件終了条件を設定できます。 開始条件として設定されたアーティファクトはステージ開始時に存在有無を確認してステージの進行を決定します。 終了条件として設定されたアーティファクトはステージの生産物をアーティファクトに設定します。

NHN Cloudビルドツールで設定可能なアーティファクト

GitHubおよびGitLabはブランチを入力しない場合、masterブランチをデフォルト値として使用します。

アーティファクトの種類 使用条件 パスまたはリファレンス設定例
GitHubファイル 開始 https://api.github.com/repos/{organization}/{repository}/contents/{file-path}
GitHub Enterpriseの場合の例:https://github.mydomain.com/api/v3/repos/{organization}/{repository}/contents/{file-path}
GitLabファイル 開始 https://gitlab.com/api/v4/projects/{project-number}/repository/files/{file-path}
Dockerイメージ 開始、終了 {domain}/{dockerhub-account or image-registry-path}/{image-name}
HTTPファイル 開始 アクセス可能なURL

pipeline-guide-06

環境設定で追加したビルドツールを使用すると、ビルドツールのビルドジョブを実行できます。実行するビルドジョブを選択すると、ビルドジョブのパラメータを追加で入力できます。

pipeline-guide-07 アーティファクト設定を使用して開始条件終了条件を設定できます。 開始条件として設定されたアーティファクトはステージ開始時に存在有無を確認してステージの進行を決定します。 終了条件として設定されたアーティファクトはステージの生産物をアーティファクトに設定します。

ビルドツールで設定可能なアーティファクト

GitHubおよびGitLabはブランチを入力しない場合、masterブランチをデフォルト値として使用します。

アーティファクトの種類 使用条件 パスまたはリファレンス設定例
GitHubファイル 開始 https://api.github.com/repos/{organization}/{repository}/contents/{file-path}
GitHub Enterpriseの場合の例:https://github.mydomain.com/api/v3/repos/{organization}/{repository}/contents/{file-path}
GitLabファイル 開始 https://gitlab.com/api/v4/projects/{project-number}/repository/files/{file-path}
Dockerコンテナイメージ 開始 {domain}/{dockerhub-account or image-registry-path}/{image-name}
HTTPファイル 開始、終了 アクセス可能なURL

ビルド設定が完了したら次へをクリックします。

配布設定

環境設定で追加した配布対象にコンテナイメージを配布する方法を設定します。
Manifestソースtextまたはartifactを選択できます。
設定方法は次のとおりです。

"text"を選択する場合:ステージ名、配布対象、配布に使用するKubernetes Manifestを入力し、次へをクリックします。Manifestを作成する方法はKubernetes文書を参照してください。

pipeline-guide-08.png

"外部入力"を選択する場合:"アーティファクト定義"にあるリポジトリタイプ、ソースリポジトリ、パス、ブランチ名を入力し、次へをクリックします。

pipeline-guide-09-01.png

ビルド設定で使用したタグフォーマットをManifestに使用できます。 Manifestコンテナ設定のイメージタグにタグフォーマットを入力すると、最新のビルドされたイメージで配布できます。 pipeline-guide-09-02.png

NHN Cloudビルドツールでアーティファクト設定を使用して開始条件終了条件を設定できます。 開始条件として設定されたアーティファクトはステージ開始時に存在有無を確認してステージの進行を決定します。 終了条件として設定されたアーティファクトはステージの生産物をアーティファクトに設定します。 入力したマニフェストに終了条件と一致するKubernetesオブジェクトがないため、ステージが失敗した場合でも、マニフェストがKubernetesクラスタに適用される可能性があります。 pipeline-guide-10

配布設定で設定可能なアーティファクト

GitHubおよびGitLabはブランチを入力しない場合、masterブランチをデフォルト値として使用します。

アーティファクト種類 使用条件 パスまたはリファレンス設定例
GitHubファイル 開始 https://api.github.com/repos/{organization}/{repository}/contents/{file-path}
GitHub Enterpriseの場合の例:https://github.mydomain.com/api/v3/repos/{organization}/{repository}/contents/{file-path}
GitLabファイル 開始 https://gitlab.com/api/v4/projects/{project-number}/repository/files/{file-path}
Dockerコンテナイメージ 開始 {domain}/{dockerhub-account or image-registry-path}/{image-name}
HTTPファイル 開始 アクセス可能なURL
kubernetesオブジェクト 終了 オブジェクトの名前

最終検討とパイプラインの作成

最終検討ではパイプラインに設定した全ての入力内容を確認できます。

pipeline-guide-11.png

パイプラインテンプレートファイルで作成した場合は、アップロードしたファイル名を確認できます。

pipeline-guide-35

入力した内容を確認し、作成をクリックします。

pipeline-guide-12

パイプラインの実行

パイプラインを実行する方法には手動実行と自動実行があります。

手動実行

手動実行を使用した場合、ユーザーが望むときにパイプラインを実行できます。

pipeline-guide-13

パイプライン管理で▶(手動実行)をクリックし、ダイアログボックスが表示されたら確認をクリックします。

自動実行

自動実行を使用すると、GitHubまたはGitLabリポジトリにイベントが発生したりイメージストアのコンテナイメージを更新した場合にパイプラインを自動的に実行するように設定できます。

pipeline-guide-14

自動実行設定をクリックし、自動実行設定ダイアログボックスで追加をクリックします。

GitHub自動実行設定

pipeline-guide-15

GitHub Webフックを使用してGitHubまたはGitHub Enterpriseのリポジトリにイベントが発生した場合にパイプラインを自動的に実行するように設定できます。自動実行タイプをGitHubに設定し、リポジトリの組織またはユーザー名、プロジェクト名、ブランチ、シークレットを入力し、確認をクリックします。 タグで自動実行を設定するには、ブランチまたはタグ項目に「refs/tags/タグ名」のようにタグ名を入力します。「タグ名」部分にはJAVA正規表現を使用できます。 タグで自動実行を設定したらNHN Cloudビルドツールを使用する際に設定されたタグでビルドを実行します。ビルド-Jenkinsステージでタグでビルドを実行したい場合は、次のような設定が必要です。

Jenkinsで次のようにパラメータを設定します。 pipeline-guide-39.png pipeline-guide-40.png Pipelineのビルドツール設定でビルドジョブパラメータに次のように入力します。 pipeline-guide-41.png

GitHub Webフック設定値

pipeline-guide-16

項目 設定値
Payload URL https://kr1-pipeline.api.nhncloudservice.com/webhooks/git/github
Content type application/json
Secret パイプライン自動実行設定のシークレットに入力した値
event push event、create event(タグ使用時)

特定ファイルPushされた場合のみ自動実行されるように設定できます。(最大5個)

pipeline-guide-33

ソースリポジトリ名は環境設定で登録したソースリポジトリを選択します。 ファイルパスは選択したソースリポジトリからファイルが含まれるパスを入力します。

GitLab自動実行設定

pipeline-guide-17

GitLab Webフックを使用してGitLaリポジトリにイベントが発生した場合にパイプラインを自動的に実行するように設定できます。自動実行タイプをGitLabに設定し、リポジトリの組織またはユーザー名、プロジェクト名、ブランチを入力し、確認をクリックします。GitLabシークレット設定は今後サポートする予定です。

GitLab Webフック設定値

pipeline-guide-18

項目 設定値
URL https://kr1-pipeline.api.nhncloudservice.com/webhooks/git/gitlab
Trigger Push eventsチェック
Secret 設定しない
SSL verification Enable SSL verificationチェック

GitLab Webフック設定時の注意事項

GitLabのユーザー名で自動実行を設定する場合、ユーザー名をGitLabのユーザー名と同じに設定する必要があります。ユーザー名が異なる場合、自動実行が動作しない場合があります。

pipeline-guide-19

イメージストア自動実行設定

pipeline-guide-20

コンテナイメージを更新したときにパイプラインを自動的に実行するには、自動実行タイプイメージストアに設定します。 イメージストア環境設定で登録した項目に選択したした後、イメージ名を入力します。イメージ名はNHN Cloud Container Registryの場合registry名/イメージ名の形式で入力します。 Docker Hubの場合、Docker Hubアカウント/イメージ名の形式で入力します。タグはJAVA正規表現を使用でき、入力したタグとマッチするタグがpushされた場合に自動実行されます。 タグを入力しない場合、latestを除く新規タグがpushされる場合に自動実行されます。 入力が終わったら確認をクリックします。

pipeline-guide-21

パイプラインを新しく作成したら、自動実行防止が基本的に適用されます。パイプラインを自動的に実行するには自動実行防止未使用に変更する必要があります。パイプラインを選択した後、下部の基本情報の自動実行防止で変更をクリックします。自動実行防止設定ダイアログボックスで未使用を選択した後、確認をクリックします。

pipeline-guide-22

実行中のパイプラインの詳細情報を確認するには、実行中のパイプラインを選択した後、下部の基本情報の最近の実行状態で詳細情報をクリックします。

実行履歴

パイプラインを手動実行、自動実行した場合は、実行履歴タブで実行履歴を確認できます。

pipeline-guide-26

パイプライン管理

ユーザーはパイプラインを構成するステージを追加、変更、削除できます。

pipeline-guide-23

パイプラインを選択した後、下部のステージをクリックすると、ステージ管理画面が表示されます。ステージ追加をクリックするとステージ追加ダイアログボックスが表示されます。

pipeline-guide-24

ステージ名、ステージタイプ、ステージタイプ別の入力値、以前の段階を設定した後、ステージ追加をクリックしてパイプラインにステージを追加できます。 Pipelineはアプリケーション配布フローを構成するときに使用できるさまざまなステージタイプを提供します。

pipeline-guide-25

以前のステージを選択する方式に基づいてステージを並列に実行できます。並列構成したステージのうち1つが失敗すると、残りのステージは実行がキャンセルされ、パイプラインの実行は失敗します。

パイプラインJSON修正およびダウンロード

JSON修正によりパイプラインを変更できます。

pipeline-guide-36

JSONを表示をクリックして、JSON形式でパイプラインを確認できます。

pipeline-guide-37

パイプラインテンプレートのダウンロードをクリックして、JSONファイルで保存できます。

編集をクリックして、画面でJSONファイルを直接修正できます。

pipeline-guide-38

修正後確認をクリックすると、修正された内容がパイプラインに反映されます。ただし、入力値が誤っている場合、エラーメッセージが表示されます。

実行履歴と作業

実行履歴で実行履歴の確認とJudgementステージの実行設定選択、ステージ実行停止/ステージ実行の決定を行います。

pipeline-guide-26

実行履歴で現在実行中のパイプライン履歴を選択すると、次のように実行中のステージ情報が表示されます。

pipeline-guide-27

実行中のパイプラインステージのうちJudgementステージが選択待機中の場合、管理ボタンが表示され、そのボタンを押すと次のようなポップアップが表示され、ステージ追加、変更時に入力した説明実行設定の値とステージ実行停止/ステージ実行を選択できます。

pipeline-guide-28 pipeline-guide-29 pipeline-guide-30

実行設定値を入力しなかった場合、実行設定選択せずにステージ実行停止/ステージ実行だけを選択します。

pipeline-guide-31

ユーザーが選択したステージの設定通りに実行され、実行履歴は5秒ごとに更新されます。

pipeline-guide-32

ステージの実行停止を選択すると、該当ブランチの実行が停止され、実行中のステージのキャンセルは選択したパイプラインの実行全体がキャンセルされます。

TOP