Atlassian Bamboo останавливает сборку, которая в настоящее время выполняется/выполняется

Я пытаюсь остановить сборки bamboo (которые в настоящее время запущены), если они передают определенный вариант использования.

У меня есть список сборок, которые мне нужно остановить. Теперь я хочу отправить запрос REST, чтобы остановить сборку(ы), очень похожую на кнопку "Остановить сборку", которая находится в правом верхнем углу сборки (см. изображение). enter image description here

в документации REST API я видел только это, что останавливает сборку, только если она находится в очереди.

https://docs.atlassian.com/bamboo/REST/3.3-SNAPSHOT/

/queue/{projectKey}-{buildKey}-{buildNumber}

остановить выполнение сборки, однако только если сборка еще не запущена-так что если ждет в очереди сборки. Если строить больше не существует в очереди, метод не имеет никакого эффекта.

Мне нужен способ, чтобы остановить под управлением строит. Любая помощь будет высоко ценится.

1 ответов


я смог выяснить имена сборок 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