require "pact_broker/client/tasks" require "pact_broker/client/git" PactBroker::Client::PublicationTask.new(:localhost) do | task | require "pact_broker/client/version" task.tag = `git rev-parse --abbrev-ref HEAD`.strip task.consumer_version = PactBroker::Client::VERSION task.pact_broker_base_url = "http://localhost:9292" task.build_url = "http://ci" # task.branch = "main" end PactBroker::Client::PublicationTask.new(:remote) do | task | require "pact_broker/client/version" task.tag = `git rev-parse --abbrev-ref HEAD`.strip task.consumer_version = PactBroker::Client::VERSION task.pact_broker_base_url = "https://test.pact.dius.com.au" task.pact_broker_basic_auth = { username: ENV.fetch("PACT_BROKER_USERNAME"), password: ENV.fetch("PACT_BROKER_PASSWORD") } end PactBroker::Client::PublicationTask.new(:pactflow_oss) do | task | version = ENV.fetch("GITHUB_SHA") branch = ENV.fetch("GITHUB_REF").gsub("refs/heads/", "") feature = ENV.fetch("TEST_FEATURE", "") tag = branch if feature != '' version = "#{version}+#{feature}" tag = "#{tag}+#{feature}" end require "pact_broker/client/version" task.auto_detect_version_properties = false task.tags = [tag] task.branch = nil task.consumer_version = version task.pact_broker_base_url = "https://pact-oss.pactflow.io" task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_pact_foundation) do | task | version = ENV.fetch("GITHUB_SHA") branch = ENV.fetch("GITHUB_REF").gsub("refs/heads/", "") feature = ENV.fetch("TEST_FEATURE", "") tag = branch if feature != "" version = "#{version}+#{feature}" tag = "#{tag}+#{feature}" end require "pact_broker/client/version" task.auto_detect_version_properties = false task.tags = [tag] task.branch = nil task.consumer_version = version task.pact_broker_base_url = "https://pact-foundation.pactflow.io" task.pact_broker_token = ENV["PACT_BROKER_TOKEN_PACT_FOUNDATION"] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_auto_on_nil_commit_nil_branch) do | task | require 'pact_broker/client/version' # publish with auto detected commit and branch task.auto_detect_version_properties = true task.branch = nil task.consumer_version = nil task.pact_broker_base_url = ENV['PACT_BROKER_BASE_URL'] task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_auto_on_user_commit_user_branch) do | task | require 'pact_broker/client/version' # always accept user provided commit and branch # even when auto_detect_version_properties enabled task.auto_detect_version_properties = true task.branch = 'user-provided-branch' task.consumer_version = 'user-provided-version' task.pact_broker_base_url = ENV['PACT_BROKER_BASE_URL'] task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_auto_on_user_commit_nil_branch) do | task | require 'pact_broker/client/version' # auto detect branch, always accept user provided commit # even where set to auto_detect_version_properties task.auto_detect_version_properties = true task.branch = nil task.consumer_version = 'user-provided-version' task.pact_broker_base_url = ENV['PACT_BROKER_BASE_URL'] task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_auto_on_nil_commit_user_branch) do | task | require 'pact_broker/client/version' # auto detect commit, always accept user provided branch # even where set to auto_detect_version_properties task.auto_detect_version_properties = true task.branch = 'user-provided-branch' task.consumer_version = nil task.pact_broker_base_url = ENV['PACT_BROKER_BASE_URL'] task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_auto_off_user_commit_nil_branch) do | task | require 'pact_broker/client/version' # accept publish without branch, but has user provided commit # auto_detect_version_properties off task.auto_detect_version_properties = false task.branch = nil task.consumer_version = 'user-provided-version' task.pact_broker_base_url = ENV['PACT_BROKER_BASE_URL'] task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_auto_off_nil_commit_nil_branch) do | task | require 'pact_broker/client/version' # reject publish without user provided commit # auto_detect_version_properties off task.auto_detect_version_properties = false task.branch = nil task.consumer_version = nil task.pact_broker_base_url = ENV['PACT_BROKER_BASE_URL'] task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end PactBroker::Client::PublicationTask.new(:pactflow_auto_off_empty_string_commit_nil_branch) do | task | require 'pact_broker/client/version' # reject publish without user provided commit # auto_detect_version_properties off task.auto_detect_version_properties = false task.branch = nil task.consumer_version = '' task.pact_broker_base_url = ENV['PACT_BROKER_BASE_URL'] task.pact_broker_token = ENV['PACT_BROKER_TOKEN'] task.build_url = PactBroker::Client::Git.build_url end