Sha256: cb5c0f22022eecf18a8177408118c92393637853d78ff9e24da8a27e9ecae38f
Contents?: true
Size: 1.44 KB
Versions: 4
Compression:
Stored size: 1.44 KB
Contents
require 'pact_broker/client' module PactBroker module Client class PublishPacts def initialize pact_broker_base_url, pact_files, consumer_version @pact_broker_base_url = pact_broker_base_url @pact_files = pact_files @consumer_version = consumer_version end def call validate pact_files.collect{ | pact_file | publish_pact pact_file }.all? end private attr_reader :pact_broker_base_url, :pact_files, :consumer_version def pact_broker_client @pact_broker_client ||= PactBroker::Client::PactBrokerClient.new(base_url: pact_broker_base_url) end def publish_pact pact_file begin puts "Publishing #{pact_file} to pact broker at #{pact_broker_base_url}" pact_broker_client.pacticipants.versions.pacts.publish(pact_json: File.read(pact_file), consumer_version: consumer_version) true rescue => e $stderr.puts "Failed to publish pact: #{pact_file} due to error: #{e.to_s}\n#{e.backtrace.join("\n")}" false end end def validate raise "Please specify the consumer_version" unless (consumer_version && consumer_version.to_s.strip.size > 0) raise "Please specify the pact_broker_base_url" unless (pact_broker_base_url && pact_broker_base_url.to_s.strip.size > 0) raise "No pact files found" unless (pact_files && pact_files.any?) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems