実録!長沢のデモ環境を構築する手順 その3

【 この記事は、1212人に読まれています】


 

環境構築編つづき


その1その2である程度の環境が整いましたが、今回はその3として、ビルド自動化のあたりの設定と手順を見ていきましょう。

  • Stash と Bamboo のトリガー連携

についてです。

 

Bamboo による継続的インテグレーションの設定(基本)


Bamboo で CI のプロジェクトを作成すると、連動する vcs のリポジトリの設定が必要となります。その1 で紹介したように、Bamboo の CI プロジェクトの作成時に Stash (GitHub, Bitbucket, などでも一緒) のプロジェクト/リポジトリを設定しておくとこの辺りがぐっと楽になります。

Stash リポジトリ設定の確認


Bamboo CI プロジェクトを Configuretion において、「Repositories」タブを見ると連携するリポジトリの一覧を見ることができます。当然、複数のリポジトリを設定できます。

スクリーンショット 2014-12-03 12.39.53
すでに Bamboo CI プロジェクト作成の際に設定したリポジトリがセットされていますので、クリックして設定内容を見てみましょう。

スクリーンショット 2014-12-03 12.42.07
このように、「linked repositories」として、識別されているのがわかります。この設定を変更するには、linked repositories で行いますが、意図は、CI プランを作成する人と、VCS リポジトリの登録をする人の責務の分離です。

少し余談ですが、新たに VCS リポジトリを追加する場合は、「Add repository」ボタンで行えます。すでに Stash との連携設定を終えている場合は、CI プランを定義する人は、項目を選択していくだけで、設定を行うことができるようになります。要するに設定ミスなどを軽減できるようことです。

スクリーンショット 2014-12-03 12.46.02
因みに、Advanced options では、より細部にわたりビルド時に使用する振る舞いを設定できます(私は既定のままデモで使っています)。

スクリーンショット 2014-12-03 12.48.35
 

トリガーの設定


トリガーは、CI を実行するきっかけの設定です。「Triggers」タブにて設定します。CI プロジェクト設定で Stash と連携させている場合は、こちらにも「Stash Repository Triggerd」というものがセットされています。確認してみましょう。

スクリーンショット 2014-12-03 12.51.36
Trigger type では、いくつかの選択肢が用意されています。

スクリーンショット 2014-12-03 12.52.55
 

Bamboo による継続的インテグレーションの設定(ブランチプラン)


ブランチプランによる自動ビルドとは、作成されたブランチに対しての CI を実行することができることを意味しています。目的別にブランチを作成(フィーチャーブランチモデル、Git Flow, GitHub Flow)においてマージであったり、プルリクエストを行う前に、そのブランチでの CI を実行し、ビルドとテストの結果を得るようなことが可能になります。

スクリーンショット 2014-12-03 12.59.16
この設定を行う場合は、「Create plan branches for branches detected in the repository」にチェックを入れます。

Bamboo では、ブランチの自動マージについて2つのモデルに対応しています。「Branch updater」と「Gatekeeper」です。これらについては、オンラインドキュメントを参照してみてください。うまく利用すると、マージによる負荷を軽減した CI を行うことができます。

JIRA feature branches は、JIRA 課題 ID 名が含まれるブランチの場合は、その JIRA の課題 ID に CI のビルド結果を自動でリンクしてくれる機能です。JIRA と Bamboo を使う場合は、設定しておいて損はありません。

また、個別に手動で特定のブランチのプランをあらかじめ定義しておくこともできます。Development ブランチなどの目的別のブランチプランがほしいとか、個人用のプライベートブランチがほしいといった場合ですね。その場合は、「Create plan branch」ボタンをクリックして設定します。

さて、実際の CI の自動ビルドのワークフロー、タスクについてはまだ触れていません。それらはまたの機会で設定して、実行していきます。

 

Bamboo デプロイメント プロジェクトの設定


ついでということで、勢いで、こちらも設定しておきましょう。その1 で前述していますが、Bamboo では、CI のプロジェクトとデプロイのプロジェクトを明示的に分離しています。

 

基本設定


スクリーンショット 2014-12-03 13.18.29
デプロイメントプロジェクトの作成の画面にちょうどよいイメージ図があるのでそのまま貼り付けておきますw

「Create my first deployment project」ボタンをクリックし、最初のデプロイメントプロジェクトを作成します。

設定項目は、プロジェクト名と、CI のどのプランとリンクするか、(Stash リポジトリと関連する) どのプランブランチを利用するかを設定します。私の環境では、master で十分です。Development ブランチなどを設定していて、開発チーム向けにデプロイをする場合などは、ここで、Development 向けのプランブランチを設定しておくとよいでしょう。

 

環境 (Environment) の設定


デプロイ先ごとにデプロイのスクリプトや、ワークフロー、権限は異なるはずです。Bamboo ではこれらを環境 (Environment) として設定できます。

スクリーンショット 2014-12-03 13.26.59
「Add environment」ボタンにてデプロイ環境をどんどん定義していきましょう。私のデモ環境では最低限ということで、Staging と Production を準備しています。

スクリーンショット 2014-12-03 13.28.35
この段階では、「Create and back」ボタンで戻りながらドンドン進めてしまってよいでしょう。後で、ワークフローは組んでいきます。

スクリーンショット 2014-12-03 13.30.23
こんな感じになります。タスク(ワークフロー)を設定していないので、警告がでてきます。

フリーで提供している PowerPoint 素材でのカバー範囲は以下になります。

スクリーンショット 2014-12-02 16.51.23

つづく


こんな感じでシリーズ化して書いていこうかと思いますがいかがでしょうか?不必要なコンテンツを量産するつもりはないので、ぜひぜひ忌憚ないフィードバックをいただければ幸いです。

Twitter: @tnagasawa    Facebook: Tomoharu.Nagasawa   email: tnagasawa @ atlassian.com

RT や いいね!、はてブでも構いません。

 

実作業編:

  • Confluence で企画文書かきかき
  • Confluence 企画文書から、JIRA 課題作成
  • JIRA 課題の確認と状態遷移
  • JIRA から Stash ブランチ作成
  • Bamboo でブランチに対して CI 自動実行(任意)
  • Stash から SourceTree 起動
  • SourceTree でコード変更とコミット&プッシュ
  • Bamboo でブランチに対して CI 自動実行(任意)
  • JIRA で確認して、プルリクエスト依頼
  • Stash でコードレビューとディスカッション&承認とマージ
  • Bamboo で CI 自動実行
  • Bamboo で Staging 環境に自動デプロイ
  • JIRA で状況確認
  • JIRA から Bamboo で Production 環境に自動デプロイ

 


 

【 この記事は、1212人に読まれています】

コメントを残す