[Bamboo Knowledge Base]
Variables can be used to make values available when building plans in Bamboo.
Variables can be used in all fields of a task or deployment, with the exception of password fields. Use the following format when referencing a variable:
${bamboo.variableName}
You can override a plan variable for a build, if you trigger the build manually. See Triggering a plan build manually.
You cannot reference a variable from another variable in Bamboo, i.e. "double de-referencing". See this knowledge base article for more information.
上記と同様の形式を使用して独自のカスタム変数を定義できます。ただし、Bamboo ですでに使用されている変数名を作成することはできません。
Bamboo で独自の変数を定義する方法については、次の内容をご参照ください。
次のビルド固有の変数が初期設定で用意されています。
ビルド固有の変数 | 説明 |
---|---|
bamboo.buildKey | 現在のジョブのジョブ キー、"プロジェクト - 計画 - ジョブ" の形式、例: |
bamboo.planKey | 現在の計画のキー、"プロジェクト - 計画" の形式、例: BAM-MAIN |
bamboo.shortPlanKey | 現在の計画の短いキー (プロジェクト部分なし)、例: MAIN |
bamboo.shortJobKey | 現在のジョブの短いキー (プロジェクトと計画の部分なし)、例: JOBX |
bamboo.buildResultKey | このジョブの実行時の結果キー、"プロジェクト - 計画 - ジョブ - ビルド" の形式、例: BAM-BOO-JOB1-8 ("8" はビルド番号)、デプロイ プロジェクトではこの変数にジョブ部分が含まれない (例: PROJ-TP-6 ) |
bamboo.buildResultsUrl または bamboo.resultsUrl | ジョブの実行終了後の Bamboo 内での結果 URL |
bamboo.buildNumber | Bamboo のビルド番号、例: |
bamboo.buildPlanName | Bamboo のジョブ名、例: |
bamboo.planName | 現在の計画の名前、例: Some project name - Some plan name |
bamboo.shortPlanName | 現在の計画の名前 (プロジェクトの部分なし)、例: Some plan name |
bamboo.shortJobName | 現在のジョブの名前 (プロジェクトと計画の部分なし)、例: Some job name |
bamboo.buildTimeStamp | ビルドが開始された時刻、ISO 8601 形式、例: |
bamboo.agentId | デプロイメントが実行されるエージェントの ID |
bamboo.agentWorkingDirectory | エージェントの作業ディレクトリへのパス。これは Bamboo の作業ディレクトリとは異なります。 |
bamboo.build.working.directory | ビルドが実行されている作業ディレクトリ |
bamboo.ManualBuildTriggerReason.userName | 手動ビルドをトリガーしたユーザー |
一般的なリポジトリ変数 | |
bamboo.planRepository.<position>.branchName | リポジトリ内のブランチの名前 (使用された VCS の可用性による)、例: default |
bamboo.planRepository.<position>.name | 計画のリポジトリに表示されているリポジトリの名前、例: Mercurial |
bamboo.planRepository.<position>.revision | The revision use to build this release. Format depends on the VCS used. |
bamboo.planRepository.<position>.type | リポジトリのタイプ、リポジトリ プラグインで定義されているとおり、例: hg、svn、git |
Subversion | |
bamboo.planRepository.<position>.revision.number | リビジョン番号 |
bamboo.planRepository.<position>.lastchange.revision.number | 最後に変更されたリビジョン番号 |
bamboo.planRepository.<position>.username | リポジトリ認証に使用されるユーザー名 |
bamboo.planRepository.<position>.repositoryUrl | The repository URL. |
CVS | |
bamboo.planRepository.<position>.last.update.time | 最終更新日のタイムスタンプ |
bamboo.planRepository.<position>.last.update.time.label | The last updated timestamp to be used as a label for post build result labelling. The spaces in the cvs version string are replaced with '_'. |
perforce | |
bamboo.planRepository.<position>.revision.number | 変更セット番号 |
bamboo.planRepository.<position>.username | リポジトリ認証に使用されるユーザー名 |
bamboo.planRepository.<position>.port | リポジトリ通信に使用されるポート |
bamboo.planRepository.<position>.client | リポジトリ通信に使用されるクライアント |
Git | |
bamboo.planRepository.<position>.branch | ブランチ |
bamboo.planRepository.<position>.repositoryUrl | The repository URL |
Mercurial | |
bamboo.planRepository.<position>.repositoryUrl | The repository URL |
bamboo.planRepository.<position>.branch | ブランチ |
bamboo.planRepository.<position>.username | リポジトリ認証に使用されるユーザー名 |
次のビルド依存関係の変数も使用できます。
ビルド固有の変数 | 説明 |
---|---|
bamboo.dependency.parent.# | トリガーとなる親ビルドのビルド キーを子ビルドがクエリできるようにします。この場合、# はビルド ツリー内の位置 (0 は最上部、1 はその次など) を表します。${bamboo.dependency.parent.0} 変数は、子計画のメタデータ タブで確認できます。 |
dependency.parent.total | 親ビルドの総数 |
プロジェクトのデプロイ時に使用できる、複数の標準予約済み変数が Bamboo によって管理されています。
名前が繰り返される場合、次のリストで後にある変数が前の変数をオーバーライドします。
変数 | 説明 |
---|---|
bamboo.agentId | The id of the agent that the deployment is executed on. |
bamboo.agentWorkingDirectory | エージェントの作業ディレクトリへのパス。これは Bamboo の作業ディレクトリとは異なります。 |
bamboo.build.working.directory | Bamboo の作業ディレクトリへのパスです。これはビルド計画とデプロイ プロジェクトの両方で使用されます。 |
bamboo.deploy.environment | リリースがデプロイされる環境の名前。 |
bamboo.deploy.project | デプロイ プロジェクトの名前。 |
bamboo.deploy.rollback | デプロイされるリリースが置き換えられるリリースよりも古い場合に当てはまります。 |
bamboo.deploy.release bamboo.deploy.version | デプロイされているリリースの名前。「.release」と「.version」のいずれかを使用できます。どちらもデプロイされるリリースの名前を返します。 |
bamboo.deploy.release.previous bamboo.deploy.version.previous | 置き換えられるリリースの名前 (利用できる場合)。.release と.version のいずれかを使用できます。どちらも置き換えられるリリースの名前を返します。 |
bamboo.resultsUrl | The URL to the screen in Bamboo that dispays build results. |
You can generate variables of your own, using a similar format, however you cannot create a variable that is already in use by Bamboo. See Variables for deployment environments for more information on configuring your deployment environment variables.
Bamboo では、デプロイ リリースに変数の次のタイプを使用できるようにしています。
変数 | 説明 |
---|---|
bamboo.buildNumber | The build result from which the release is created. |
bamboo.buildResultKey | リリースが作成されたビルド結果のキー、例: KUNG-FOO-JOB1-35 |
bamboo.planKey | リリースに関連する計画のキー、例: KUNG-FOO |
bamboo.planName | リリースに関連する計画の名前、例: Kung - Foo |
bamboo.shortPlanKey | リリースに関連する計画の短いキー (プロジェクト部分なし)、例: MAIN |
bamboo.shortPlanName | 計画の名前 (プロジェクトの部分なし)、例: Some plan name |
上記の表にある変数の一部は、実際にビルド計画に関連する変数であることにご注意ください。
すべてのシステム変数に使用される形式は次のとおりです。
${system.<variable>}
たとえば、システム変数 MYPATH=C:\MyPath;
がある場合、システム変数と同じ値を継承する Bamboo システム変数 system.MYPATH
を使用できます。
Bamboo の古いバージョンでは、(スクリプト タスクの) "環境変数" フィールドで "PATH" を使用しても Windows の PATH 変数は設定されませんが、"Path" を使用すると cmd シェルで Path と PATH が設定されます。
Bamboo 変数は bash シェル変数としてエクスポートされます。すべてのフル ストップ (ピリオド) はアンダースコアに変換されます。たとえば、変数 bamboo.my.variable
は、bash では $bamboo_my_variable
になります。これはファイル スクリプト タスクに関連しています (インライン スクリプト タスクではありません)。
Note that these JIRA variables can be accessed from a Bamboo build only when that build was triggered by releasing a version in a JIRA application.
Jira 変数 | 説明 |
---|---|
${bamboo.jira.baseUrl} | The URL of your JIRA application server. |
${bamboo.jira.projectKey} | The key of the triggering JIRA application project. |
${bamboo.jira.projectName} | The name of the triggering JIRA application project. |
${bamboo.jira.version} | The release version of the triggering JIRA application project. |
${bamboo.jira.username} | リリース ビルドをトリガーしたユーザーのユーザー名 |
たとえば、Maven 2 バージョンを Bamboo で決定する場合、Maven 2 pom.xml
が次のようになる可能性があります。
... <groupId>com.atlassian.boo</groupId> <artifactId>boo-test</artifactId> <packaging>jar</packaging> <version>1.1.${bambooBuildNumber}-SNAPSHOT</version> ...
その後、ビルド計画の "目標" フィールドに次を指定できます。
clean package -DbambooBuildNumber=${bamboo.buildNumber}
コマンドが実行されると、Bamboo は buildNumber
を実際の番号 (1102 など) に置き換えます。この番号は、基盤となる Maven ビルドに渡されて使用されます。その後、コマンドは boo-test-1.1.1102-SNAPSHOT.jar
ような jar を生成します。
その後、ビルド計画の "ターゲット" フィールドに次を指定できます。
-f build.xml -DbambooBuildNumber=${bamboo.buildNumber}
コマンドが実行されると、Bamboo は buildNumber
を実際の番号 (1102 など) に置き換えます。この番号は、基盤となる Ant ビルドに渡されて使用されます。
グローバル変数と同じ方法で使用する機能を指定することもできます。
機能の形式は次のようにする必要があります。
${bamboo.capability.<capability_key>}
例:
カスタム
${bamboo.capability.<capability_key>}
JDK
${bamboo.capability.system.jdk.<jdk_label>}
ビルダー
${bamboo.capability.system.builder.<builder_type>.<builder_label>} e.g. ${bamboo.capability.system.builder.maven.Maven1}
perforce
${bamboo.capability.system.p4Executable}
機能をクリックすると、特定の機能キーが URL に含まれます。
URL のスペース文字は "+" の文字に置き換わります。変数として使用する場合は、スペース文字を含む機能ラベルを使用しないことをお勧めします。スペース文字の考えられる解決策は、「${}」記号でフォーマットすることですが、すべての場合にうまくいくわけではありません。
Global and Build-Specific Variables can be used in a specific fields of your build plan, as specified above. For capabilities,
例:
システム変数を指定しようとしているが、エージェントごとに異なる値を設定する場合は、次の手順を実行してください。
[ビルダー] タブのシステム環境変数フィールドとして次を設定します。
${bamboo.capability.thatsystemvariable}
次の変数は廃止され、今後の Bamboo リリースでは削除されます。
一般的なリポジトリ変数 | |
---|---|
bamboo.repository.revision.number | リビジョン番号 |
bamboo.repository.branch.name | リポジトリ ブランチ名 (Bamboo バージョン 4.2 またはそれ以降) |
bamboo.repository.previous.revision.number | 前のリビジョン番号 (初期ビルドなどでは存在しない場合がある) |
Subversion | |
bamboo.custom.svn.revision.number | リビジョン番号 |
bamboo.custom.svn.lastchange.revision.number | 最後に変更されたリビジョン番号 |
bamboo.custom.svn.username | リポジトリ認証に使用されるユーザー名 |
bamboo.repository.svn.repositoryUrl | The repository URL. |
CVS | |
bamboo.custom.cvs.last.update.time | 最終更新日のタイムスタンプ |
bamboo.custom.cvs.last.update.time.label | The last updated timestamp to be used as a label for post build result labelling. The spaces in the CVS version string are replaced with '_'. |
perforce | |
bamboo.custom.p4.revision.number | 変更セット番号 |
bamboo.custom.p4.username | リポジトリ認証に使用されるユーザー名 |
bamboo.custom.p4.port | リポジトリ通信に使用されるポート |
bamboo.custom.p4.client | リポジトリ通信に使用されるクライアント |
Git | |
bamboo.repository.git.branch | ブランチ |
bamboo.repository.git.repositoryUrl | The repository URL. |
Mercurial | |
bamboo.repository.hg.repositoryUrl | The repository URL. |
bamboo.repository.hg.branch | ブランチ |
bamboo.repository.hg.username | リポジトリ認証に使用されるユーザー名 |