Bamboo支持在构建计划中添加触发器,并在触发器触发后设置构建变量。以下是一个示例,展示了如何根据JIRA问题号设置构建变量:
首先,在Bamboo的构建计划中添加一个触发器(例如,JIRA触发器)。
将下面的脚本复制到Bamboo的构建计划中:
if ([bamboo.planRepository.branchName, bamboo.custom.jiraIssueKey].any { it == null || it.trim() == ""}) { echo "错误:未能找到分支名称或JIRA问题关键字" error "缺少变量" }
def branchName = bamboo.planRepository.branchName def jiraIssueKey = bamboo.custom.jiraIssueKey
if (!jiraIssueKey.startsWith(branchName)) { echo "错误:JIRA问题关键字与分支名称不匹配" error "不匹配的JIRA问题关键字" } jiraIssueKey = jiraIssueKey - branchName
def buildNumber = bamboo.buildNumber def buildUrl = bamboo.resultsUrl + "artifacts/browse/"
def artifactName = "${jiraIssueKey}_build-${buildNumber}.tar.gz"
def buildArtifacts = [ [ 'label' : '构建存档', 'path' : '${bamboo.build.working.directory}/archive.tar.gz', 'name' : artifactName, 'size' : new File('${bamboo.build.working.directory}/archive.tar.gz').length(), 'url' : "$buildUrl$artifactName" ] ]
def buildVariable = [ 'artifacts' : buildArtifacts ]
//将构建变量设置为触发器特定值 bamboo.buildVariables.putAll(buildVariable)
将JIRA问题关键字添加到触发器配置中的“自定义变量”字段中(例如,jiraIssueKey = MYKEY-1234)。
当触发器触发时,构建变量将被设置,并且可用于后续的构建步骤中。在此示例中,构建存档将被命名为“MYKEY-1234_build-123.tar.gz”,并将包含在构建存档变量中。
请注意,这只是一个示例,可以根据需要进行修改。