canvas-lms/lib/tasks/canvas_pact.rake

40 lines
1.1 KiB
Ruby

if Gem.loaded_specs.has_key?('pact_broker-client')
require 'pact_broker/client/tasks'
# see https://github.com/pact-foundation/pact_broker-client/blob/master/README.md
namespace :broker do
GENERIC_CONSUMER_VERSION = '0.15'
PactBroker::Client::PublicationTask.new(:local) do |task|
format_rake_task(
task,
'http://pact-broker.docker',
'pact',
'broker',
'local'
)
end
PactBroker::Client::PublicationTask.new(:jenkins_post_merge) do |task|
format_rake_task(
task,
ENV.fetch('PACT_BROKER_HOST'),
ENV.fetch('PACT_BROKER_USERNAME'),
ENV.fetch('PACT_BROKER_PASSWORD'),
`git rev-parse --abbrev-ref HEAD`.strip
)
end
def format_rake_task(task, url, username, password, task_tag)
task.consumer_version = GENERIC_CONSUMER_VERSION
task.pattern = 'pacts/*.json'
task.pact_broker_base_url = url
task.pact_broker_basic_auth = { username: username, password: password }
task.tag = task_tag
puts "Pact file tagged with: #{task.tag}"
end
end
end