Bamboo 用 Agile Central ビルド コネクタ

概要

Bamboo 用 Agile Central ビルド コネクタでは、Bamboo プラン ビルドに関する情報が Agile Central にポストされます。CA Agile Central ビルド コネクタは、一方向および 1 回限りのメカニズムとして分類されます。Bamboo 内の情報は変更されません。AC ビルド コネクタは、目的のスケジュールに従ってご使用のプラットフォーム上で実行するソフトウェアで構成されます。コネクタの設定は、ポリシー ベースです。つまり、コネクタの動作の対象となる各プランに対して Bamboo 内の設定情報を提供する必要はありません。このコネクタを使用して特定のプランを設定できますが、シェル正規表現構文を使用するオプションを使用してプランを含めたり除外したりして、ビューおよびフォルダごとに設定することもできます。ポリシー ベースの性質を使用すると、Bamboo プロジェクト単位で Bamboo プランを追加することができ、それらのプランのビルドが Agile Central にポストされるように設定を変更する必要はありません。

このガイドの内容は以下のとおりです。

要件

  • Bamboo 6.0.3 および 6.1。コネクタは、Bamboo API の変更が下位互換である限り、進化する 6.x で動作することが見込まれています。
  • Python 3.5.x または 3.6.x (使用しているプラットフォームが Windows の場合は、64 ビット バージョンを使用することをお勧めします)。インストーラ パッケージは www.python.org から取得できます。
  • Windows のみの追加要件: pywin32 パッケージは、Python 3.5 または 3.6 のインストール後にダウンロードしてインストールする必要があります。

コネクタのダウンロード

コネクタをダウンロードするには、ここの手順に従います。

インストール

  1. pip3 install requests==2.12.5
  2. pip3 install pyral==1.3.1
  3. pip3 install PyYAML==3.12
  4. bldeif-1.1.2.zip を解凍します
  5. cd コマンドを使用して、作業ディレクトリを、コネクタをインストールするディレクトリに変更します
  6. bldeif-1.1.2.zip を解凍します(または .zip ファイルを解凍できる適切なプログラムを使用します)
  7. bldeif-1.1.2
  8. ls -laR # 解凍されたコンテンツを確認するか、Windows で dir を使用します

サンプル コンテンツ

bldeif             # bldeif モジュールのルート ディレクトリ
ac_build_connector # 実行するコネクタ起動スクリプト
config             # このコネクタで使用する設定ファイルを保持します
sample_bamboo.yml  # 参照の基準として使用するサンプル設定ファイル
README_BAMBOO.txt  # このファイル

セットアップ

一般的な推奨事項

  1. シンプルに開始します。それぞれの Bamboo プロジェクトの下に Bamboo プランを指定します。

  2. configuration サブディレクトリを見つけます。

  3. sample_bamboo.yml ファイルを環境に合わせて名前が付けられたファイルにコピーします。以下に例を示します。

    cp sample_bamboo.yml your_config.yml
  4. your_config.yml ファイルを編集します。認証情報、ワークスペース、プロジェクト、プランのサンプル値を、お使いの環境に有効で関連する値に変更します。

       * 設定ファイルの構文については、「付録 A」を参照してください。

操作

手動

ターミナル ウィンドウまたはコンソールを使用: cd コマンドでインストールのルート ディレクトリ(たとえば /opt/local/sw/bldeif-1.1.2)に移動して、以下のコマンドを実行します(your_config.yml を実際の .yml ファイルに置き換えます)。

 

python3 ac_build_connector your_config.yml

このソフトウェアでは、設定ファイルが configuration サブディレクトリ内に存在している必要があります。コマンド ラインではファイルの名前を指定します(コマンド ライン引数でサブディレクトリを指定しないでください)。

スケジュール済み

cron、launchctl、または Windows タスク スケジューラを使用します。このソフトウェアを実行する対象の環境が、以下を実行できるよう適切に設定されていることを確認してください。

python3 $BLDEIF/ac_build_connector your_config.yml

ここで $BLDEIF は、ソフトウェアがインストールされているディレクトリへの完全修飾パスを含む環境変数への参照です。たとえば、パッケージを /opt/local/sw に解凍する場合は、BLDEIF を以下のように設定します。

export BLDEIF=/opt/local/sw/bldeif-1.1.2

時間ファイル

通常の動作では、コネクタは、設定ファイル名に基づいて命名されたログ ディレクトリに時間ファイルを書き込みます。

例: 設定ファイル名が your_config.yml の場合、関連する時間ファイル名は product_x_time.file になります。時間ファイルには、人間が解読可能な日時のタイムスタンプ値が 1 行で含まれています(形式: YYYY-MM-DD hh:mm:ss Z)。この値は、認識された最新の Bamboo プランのタイムスタンプを表します(その前に Bamboo プランの見落としがないように負の値の調整が行われています)。コネクタが続いて実行されると、時間ファイルが参照され、開始時間が時間ファイルの値と等しいかそれ以降であるビルドのみを処理することによって、現在の実行に対してどのプランを認識する必要があるかが判断されます。時間ファイルの値を作為的に設定することもできます(ただし正しい形式で)。そうすることにより、ビルドを過去のある時点にさかのぼって処理することができます。コネクタはビルド レコードを複製しないため、重複する情報が Agile Central にポストされることはありません。

トラブルシューティング

コネクタは、常に設定ファイル名に基づいてログ ファイル名を書き込みます。ログ ファイルは、ベース インストール ディレクトリの下の log サブディレクトリに書き込まれます。設定ファイル内で、ログ ファイルに書き込まれるログ情報の量を決定する LogLevel を設定できます。LogLevel を DEBUG に設定した場合、完全なログ メッセージを取得できます。これは、問題が発生した箇所を突き止めたり、異常が発生した時点で処理されていた情報を特定したりするのに非常に役に立ちます。

最初の設定では、コネクタをプレビュー モードで実行すると便利です。これにより、ビルド情報をポストしなくても、Agile Central と Bamboo への接続が確立され、正しく初期化および検証することができます。このモードでは、ビルド情報を Agile Central に実際にポストせずに、どの Bamboo プランが実際に処理されるのかを表示することもできます。

プラン名に対する既知のサイズ制限

AgileCentral 内には、BuildDefinition というエンティティがあり、これには Bamboo 用ビルド コネクタの目的に沿うように Bamboo プランに基づいた名前が付けられます。AC BuildDefinition の名前属性は 256 バイトに制限されています。

VCS のサポート

現在、コネクタはビルドに関連する変更セットを処理しません。変更セットに関連するビルドを確認するには、ビルド コネクタの前に VCS コネクタを実行します。

付録 A - 設定ファイルの編集

Bamboo 用 CA Agile Central ビルド コネクタは、テキスト ファイルを YAML 形式で使用します。詳細については、www.yaml.org/start.html の Web ページを参照してください。

簡潔にするため、このドキュメントでは最も重要ないくつかの構文アイテムを扱い、コネクタで使用できる有効な YAML 設定の 3 つのセクションについて説明しています。

  • ファイルを編集するには、MS Word や Google ドキュメントではなく、テキスト エディタを使用してください。
  • ファイルには、タブ文字を使用しないでください。YAML ではタブ文字が許可されず、認識されません。
  • ファイルは UTF-8 形式で保存します。
  • 等幅フォントを使用します。
  • インデントには同じ数のスペースを使用するようにします。
  • 行では、最初に出現する引用符のない # 文字はコメントであることを示し、# 文字とそれに続くすべての文字は処理の際に無視されます
  • セクションの順序は sample.yml ファイルと同じになるようにします。
  • コロン(:)は重要なので注意してください。コロンによってキーと値が区切られます。
  • ダッシュ(-)も重要です。ダッシュはリストの開始を示し、リストにはリスト アイテムを構成するキーと値のペアが 1 つ以上含まれます。
  • 値にスペースが含まれている場合、通常は値を引用符で囲む必要はありません。# 文字が埋め込まれている場合は、値を引用符で囲む必要があります。


Sample_config.yml のスケルトン 

BambooBuildConnector:
        AgileCentral:
                ...  # いくつかのキーと値のペアはこのセクションに関連します
        Bamboo:
                ...  # いくつかのキーと値のペアはこのセクションに関連します
        Service:
                ...  # コネクタの全体的な処理に関連するいくつかのキーと値のペアは、このセクションに表示されます

Agile Central セクションでは、Agile Central との接続の取得に使用する値を指定します。Bamboo セクションでは、Bamboo との接続の取得に使用する値を指定し、ビルド情報を Agile Central にポストするために Bamboo のどのプランを処理するかを制御するポリシーを指定します。Service セクションでは、全体的なコネクタ動作の一部の側面を制御します。

説明的な表記を含むサンプル ファイル:

 ---------------------------------------------
BambooBuildConnector:

    AgileCentral:
        Server        :  rally1.rallydev.com     # R
        #Username     : [email protected]  # R  API_Key エントリが使用される場合は必要ありません
        #Password     : 2MuchAngst1415           # R  API_Key エントリが使用される場合は必要ありません
        APIKey        :  _abc123                 # O  Username と Password の代わりにこれを使用できます
        Workspace     :  My AC Workspace         # R  接続およびプロジェクト包含に使用される Agile Central ワークスペースの名前
        ProxyServer   : wu-tank.smooth.org       # O  プロキシ サーバを使用して Agile Central と通信する場合にのみこれを指定します
        ProxyUser     : jessonbrone              # O  同上、および認証プロキシにアクセスする場合のみ
        ProxyPassword : S-e-c*r*EtT321!789       # 0  同上、および認証プロキシにアクセスする場合のみ

    Bamboo:
        Protocol  :  http                        # R  デフォルトは http (SSL 接続では https を使用します)
        Server    :  mybamboo.mydomain.com       # R  Bamboo サーバ(または Bamboo クラウド サーバ)の完全修飾ホスト名
        Port      :  8085                        # R  REST API 通信用に Bamboo によって使用されるポート番号
        Username  :  apiuser                     # R  Bamboo ユーザ名
        Password  :  secret                      # R  Bamboo パスワード
        AgileCentral_DefaultBuildProject :  AC Top Project # R

        Projects:
            - Project: Bamboo Project 1          # R
              AgileCentral_Project: AC Project 1 # O
              Plans:                             # O  個々のプランを指定する必要はありませんが、指定しない場合はプロジェクトのすべてのプランが含まれます
                  - include: ^Quick*
                  - exclude: ^Quicksand*
                  - Plan: Bamboleo

            - Project: Bamboo Project 2
              Plans:
                  - include: ^DonCamillo*,^Return*
                  - include: ^Modi*,^VanG*,^Deg*,^Toulouse*,^Bon*

            - Project: Bamboo Project 3
              AgileCentral_Project: AC Project 3

    Service:
        Preview       : False   # O
        LogLevel      : DEBUG   # O  デフォルトは INFO
        MaxBuilds     : 50      # O  1 回のコネクタ実行で AC にポストされる個々のプランの最大ビルド数
        SecurityLevel : Encrypt # O
------  ファイルの終わり ---------------------------------------

付録 B: Bamboo プラン仕様

上記のサンプル設定ファイル内の Bamboo Project 1 および Bamboo Project 2 で、exclude エントリに指定されている除外リストは、include エントリが存在する限り、include エントリに指定されている包含リストのみに適用されることに注意してください。

除外リストには、include パターンに一致させるプランを含めないでください。この設定ファイルに従った場合、Bamboo Project 1 の下にある名前が Quick で始まるすべてのプランが処理され、名前が Quicksand で始まるプランは除外されます。たとえば、プラン Quicksilver および Quickstep は、明示的に指定されているプラン Bamboleo と共に処理されますが、プラン Quicksand by Caro は除外されます。

次に、Bamboo Project 2 の下にあるプランは、包含リストのパターンに一致する限り処理されます。パターンのカンマ区切りリストで構成される単一の include エントリを指定できます。または、リストが長すぎる場合はパターンを整理してわかりやすくするために、複数の include エントリを指定することもできます。最後に、Bamboo Project 3 の下にあるプランはすべて処理されます。これは、明示的なプラン名、および包含または除外パターンがその下に存在しないためです。

付録 C: AgileCentral プロジェクト仕様

 

コネクタは、AgileCentral プロジェクト内に対応する BuildDefinition および Build オブジェクトを作成することで、Bamboo の Plan および Build オブジェクトを反映します。より具体的に、Project セクションの下の AgileCentral_Project エントリにデスティネーション AgileCentral プロジェクトを指定します。上記のサンプル設定ファイルの Project: Bamboo Project 2 セクションのように、このエントリを省略した場合、Agile Central デスティネーション プロジェクトは、デフォルトによって Bamboo セクションの AgileCentral_DefaultBuildProject エントリに指定されている CA Agile Central プロジェクトになります(この例では、AC Top Project)。

AgileCentral では、プロジェクト名は一意である必要はありません。コネクタは、同じ名前のプロジェクトを識別する仕組みを提供しています。

たとえば、プロジェクト ツリーの一部が以下のようになっているとします。

   |__ AC Project 1
        |__ Salamandra
        |__ Corral
            |__ Salamandra

ビルド定義が AC で正しいプロジェクトに割り当てられるようにするには、以下の構文を使用する必要があります。

設定ファイルのスニペットの例:

       Bamboo:
           ...
           AgileCentral_DefaultBuildProject :  AC Top Project

           Projects:
               - Project: Bamboo Project 1
                 AgileCentral_Project: AC Project 1 // Salamandra
               - Project: Bamboo Project 1
                 AgileCentral_Project: AC Project 1 // Corral // Salamandra


付録 D: 認証情報の保護

コネクタ設定ファイルには、Service セクションの SecurityLevel エントリに対する以下の 3 つの設定があります。

  • Encrypt
  • Encode
  • Cleartext

設定ファイル内の SecurityLevel エントリはオプションです。デフォルト設定は、Encrypt です。

リビジョン履歴

  • 1.1.3-Master --- 2017 年 10 月 20 日
    • 修正:
      • 更新されたタイムスタンプ関数の問題
  • 1.1.2-master --- 2017 年 8 月
    • 初期リリース - Bamboo 6.0.3 および 6.1 をサポート

フィードバック

ヘルプをお求めですか?CA Agile Central コミュニティは、セルフサービスとサポートのワンストップ ショップです。CA Agile Central サポートにフィードバックを送信したり、答を見つけたり、他のユーザとのコラボレーションには CA Agile Central コミュニティ にご参加ください。