如何停止当前正在执行 running/being 的构建?
How to stop a build that is currently running/being executed?
如果 Bamboo 构建(目前 运行)通过了某个用例,我将尝试停止构建。
我有一个需要停止的构建列表。现在,我想发送一个 REST 请求来停止构建,这与构建右上角的 "Stop Build" 按钮非常相似(见图)。
在 REST API 文档中我只看到这个,它只会在排队时停止构建。
https://docs.atlassian.com/bamboo/REST/3.3-SNAPSHOT/
/queue/{projectKey}-{buildKey}-{buildNumber}
停止构建执行,但前提是构建尚未开始 - 所以如果正在构建队列中等待。如果构建不再存在于队列中,则方法无效。
我需要一种方法来停止 运行 构建。
我能够通过我自己的自动化服务器找出我需要停止的 Bamboo 构建的名称。然后我可以通过直接点击 stopPlan 按钮代码来实现这一点。这是我写的 Ruby 方法:
# Get request to stop a build located at the given url
def stop_bamboo_build_request(build_key)
logger.debug "Build Key: #{build_key}"
uri = URI("#{Rails.configuration.bamboo_base_url}/build/admin/stopPlan.action?planKey=#{build_key}")
# Create client
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
# Create Request
req = Net::HTTP::Get.new(uri)
# Add Auth
req.basic_auth(Rails.configuration.bamboo_username, Rails.configuration.bamboo_password)
# Add headers
req.add_field "X-Atlassian-Token", "no-check"
# Fetch Request
res = http.request(req)
logger.debug "Response HTTP Status Code: #{res.code}"
logger.debug "Response HTTP Response Body: #{res.body}"
rescue StandardError => e
logger.debug "HTTP Request failed (#{e.message})"
end
如果 Bamboo 构建(目前 运行)通过了某个用例,我将尝试停止构建。
我有一个需要停止的构建列表。现在,我想发送一个 REST 请求来停止构建,这与构建右上角的 "Stop Build" 按钮非常相似(见图)。
在 REST API 文档中我只看到这个,它只会在排队时停止构建。
https://docs.atlassian.com/bamboo/REST/3.3-SNAPSHOT/
/queue/{projectKey}-{buildKey}-{buildNumber}
停止构建执行,但前提是构建尚未开始 - 所以如果正在构建队列中等待。如果构建不再存在于队列中,则方法无效。
我需要一种方法来停止 运行 构建。
我能够通过我自己的自动化服务器找出我需要停止的 Bamboo 构建的名称。然后我可以通过直接点击 stopPlan 按钮代码来实现这一点。这是我写的 Ruby 方法:
# Get request to stop a build located at the given url
def stop_bamboo_build_request(build_key)
logger.debug "Build Key: #{build_key}"
uri = URI("#{Rails.configuration.bamboo_base_url}/build/admin/stopPlan.action?planKey=#{build_key}")
# Create client
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
# Create Request
req = Net::HTTP::Get.new(uri)
# Add Auth
req.basic_auth(Rails.configuration.bamboo_username, Rails.configuration.bamboo_password)
# Add headers
req.add_field "X-Atlassian-Token", "no-check"
# Fetch Request
res = http.request(req)
logger.debug "Response HTTP Status Code: #{res.code}"
logger.debug "Response HTTP Response Body: #{res.body}"
rescue StandardError => e
logger.debug "HTTP Request failed (#{e.message})"
end