Skip to content

Commit 412f46b

Browse files
committed
feat: add pact-broker-cli rust implementation
available as pact-broker-cli
1 parent 014db52 commit 412f46b

File tree

6 files changed

+61
-27
lines changed

6 files changed

+61
-27
lines changed

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,24 @@ This version (2.5.2) of the Pact standalone executables package contains:
2121
* [pact-stub-server](https://github.com/pact-foundation/pact-stub-server)
2222
* [pact_verifier_cli](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_verifier_cli)
2323
* [pact-plugin-cli](https://github.com/pact-foundation/pact-plugins/tree/main/cli)
24+
* [pact-broker-cli](https://github.com/pact-foundation/pact-broker-cli)
2425

2526
Binaries will be extracted into `pact/bin`:
2627

2728
```
2829
./pact/bin/
2930
├── pact (central entry point to all binaries)
30-
├── pact-broker
31-
├── pactflow
31+
├── pact-broker-cli
3232
├── pact_mock_server_cli
3333
├── pact-stub-server
3434
├── pact_verifier_cli
3535
├── pact-plugin-cli
36-
├── pact-message (legacy)
37-
├── pact-mock-service (legacy)
38-
├── pact-provider-verifier (legacy)
39-
└── pact-stub-service (legacy)
36+
├── pact-broker (legacy) - use `pact-broker-cli`
37+
├── pactflow (legacy) - use `pact-broker-cli pactflow`
38+
├── pact-message (legacy) - use `pact_mock_server_cli` (consumer) / `pact_verifier_cli` (provider)
39+
├── pact-mock-service (legacy) - use `pact_mock_server_cli`
40+
├── pact-provider-verifier (legacy) - use `pact_verifier_cli`
41+
└── pact-stub-service (legacy) - use `pact-stub-server`
4042
```
4143

4244
### Windows Users

packaging/README.md.template

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,24 @@ This version (<%= ENV.fetch('VERSION') %>) of the Pact standalone executables pa
2121
* [pact-stub-server](https://github.com/pact-foundation/pact-stub-server)
2222
* [pact_verifier_cli](https://github.com/pact-foundation/pact-reference/tree/master/rust/pact_verifier_cli)
2323
* [pact-plugin-cli](https://github.com/pact-foundation/pact-plugins/tree/main/cli)
24+
* [pact-broker-cli](https://github.com/pact-foundation/pact-broker-cli)
2425

2526
Binaries will be extracted into `pact/bin`:
2627

2728
```
2829
./pact/bin/
2930
├── pact (central entry point to all binaries)
30-
├── pact-broker
31-
├── pactflow
31+
├── pact-broker-cli
3232
├── pact_mock_server_cli
3333
├── pact-stub-server
3434
├── pact_verifier_cli
3535
├── pact-plugin-cli
36-
├── pact-message (legacy)
37-
├── pact-mock-service (legacy)
38-
├── pact-provider-verifier (legacy)
39-
└── pact-stub-service (legacy)
36+
├── pact-broker (legacy) - use `pact-broker-cli`
37+
├── pactflow (legacy) - use `pact-broker-cli pactflow`
38+
├── pact-message (legacy) - use `pact_mock_server_cli` (consumer) / `pact_verifier_cli` (provider)
39+
├── pact-mock-service (legacy) - use `pact_mock_server_cli`
40+
├── pact-provider-verifier (legacy) - use `pact_verifier_cli`
41+
└── pact-stub-service (legacy) - use `pact-stub-server`
4042
```
4143

4244
### Windows Users

packaging/pact.rb

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,26 @@
7373
exit_status = Process.wait2(io.pid)[1].exitstatus
7474
exit(exit_status)
7575
end
76+
when 'pact-broker-cli'
77+
ARGV.shift
78+
output = `#{File.expand_path("../../bin/pact-broker-cli", __dir__)} #{ARGV.join(" ")}`
79+
exit_status = $?.exitstatus
80+
puts output
81+
exit(exit_status)
7682
else
7783
puts "available commands:"
7884
puts "__________________"
7985
puts "#{FILENAME} help"
80-
puts "#{FILENAME} pact"
81-
puts "#{FILENAME} pactflow"
82-
puts "#{FILENAME} stub-server"
83-
puts "#{FILENAME} verifier"
84-
puts "#{FILENAME} mock-server"
85-
puts "#{FILENAME} message"
86-
puts "#{FILENAME} broker"
87-
puts "#{FILENAME} pact-broker"
88-
puts "#{FILENAME} plugin"
89-
puts "#{FILENAME} stub-service (legacy)"
90-
puts "#{FILENAME} provider-verifier (legacy)"
91-
puts "#{FILENAME} mock-service (legacy)"
86+
puts "#{FILENAME} pact (central entry point to all binaries)"
87+
puts "#{FILENAME} pact-broker-cli"
88+
puts "#{FILENAME} pact_mock_server_cli"
89+
puts "#{FILENAME} pact-stub-server"
90+
puts "#{FILENAME} pact_verifier_cli"
91+
puts "#{FILENAME} pact-plugin-cli"
92+
puts "#{FILENAME} pact-broker (legacy) - use `pact-broker-cli`"
93+
puts "#{FILENAME} pactflow (legacy) - use `pact-broker-cli pactflow`"
94+
puts "#{FILENAME} pact-message (legacy) - use `pact_mock_server_cli` (consumer) / `pact_verifier_cli` (provider)"
95+
puts "#{FILENAME} pact-mock-service (legacy) - use `pact_mock_server_cli`"
96+
puts "#{FILENAME} pact-provider-verifier (legacy) - use `pact_verifier_cli`"
97+
puts "#{FILENAME} pact-stub-service (legacy) - use `pact-stub-server`"
9298
end

script/test.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,15 @@ tools=(
5151
pact-stub-server
5252
pact_verifier_cli
5353
pact_mock_server_cli
54+
pact-broker-cli
5455
)
5556

5657
test_cmd=""
5758
for tool in ${tools[@]}; do
5859
echo testing $tool
5960
if [ "$BINARY_OS" = "windows" ] ; then FILE_EXT=.bat; fi
6061
if [ "$BINARY_OS" = "windows" ] && ([ "$tool" = "pact-plugin-cli" ] || [ "$tool" = "pact-stub-server" ] || [ "$tool" = "pact_verifier_cli" ] || [ "$tool" = "pact_mock_server_cli" ]) ; then FILE_EXT=.exe ; fi
61-
if [ "$tool" = "pact_verifier_cli" ] || [ "$tool" = "pact-mock-service" ]; then test_cmd="--help" ; fi
62+
if [ "$tool" = "pact_verifier_cli" ] || [ "$tool" = "pact-mock-service" ] || [ "$tool" = "pact-broker-cli" ]; then test_cmd="--help" ; fi
6263
echo executing ${tool}${FILE_EXT}
6364
${PATH_TO_BIN}${tool}${FILE_EXT} ${test_cmd};
6465
done

script/unpack-and-test.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,15 @@ tools=(
6060
pact-stub-server
6161
pact_verifier_cli
6262
pact_mock_server_cli
63+
pact-broker-cli
6364
)
6465

6566
test_cmd=""
6667
for tool in ${tools[@]}; do
6768
echo testing $tool
6869
if [ "$BINARY_OS" = "windows" ] ; then FILE_EXT=.bat; fi
6970
if [ "$BINARY_OS" = "windows" ] && ([ "$tool" = "pact-plugin-cli" ] || [ "$tool" = "pact-stub-server" ] || [ "$tool" = "pact_verifier_cli" ] || [ "$tool" = "pact_mock_server_cli" ]) ; then FILE_EXT=.exe ; fi
70-
if [ "$tool" = "pact_verifier_cli" ] || [ "$tool" = "pact-mock-service" ]; then test_cmd="--help" ; fi
71+
if [ "$tool" = "pact_verifier_cli" ] || [ "$tool" = "pact-mock-service" ] || [ "$tool" = "pact-broker-cli" ]; then test_cmd="--help" ; fi
7172
echo executing ${tool}${FILE_EXT}
7273
${PATH_TO_BIN}${tool}${FILE_EXT} ${test_cmd};
7374
done

tasks/package.rake

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ PLUGIN_CLI_VERSION = "0.1.3" # https://github.com/pact-foundation/pact-plugins/r
1313
MOCK_SERVER_CLI_VERSION = "1.0.6" # https://github.com/pact-foundation/pact-core-mock-server/releases
1414
VERIFIER_CLI_VERSION = "1.2.0" # https://github.com/pact-foundation/pact-reference/releases
1515
STUB_SERVER_CLI_VERSION = "0.6.2" # https://github.com/pact-foundation/pact-stub-server/releases
16+
PACT_BROKER_CLI_VERSION = "0.1.0" # https://github.com/pact-foundation/pact-broker-cli/releases
1617

1718
desc "Package pact-standalone for OSX, Linux x86_64 and windows x86_64"
1819
task :package => ['package:linux:x86_64','package:linux:arm64', 'package:osx:x86_64', 'package:osx:arm64','package:windows:x86_64']
@@ -136,6 +137,7 @@ def create_package(version, source_target, package_target, os_type)
136137
install_mock_server_cli package_dir, package_target
137138
install_verifier_cli package_dir, package_target
138139
install_stub_server_cli package_dir, package_target
140+
install_broker_cli package_dir, package_target
139141

140142
if !ENV['DIR_ONLY']
141143
sh "mkdir -p pkg"
@@ -338,4 +340,24 @@ def install_stub_server_cli(package_dir, package_target)
338340
sh "gunzip -N -f #{package_dir}/bin/pact-stub-server.exe.gz"
339341
sh "chmod +x #{package_dir}/bin/pact-stub-server.exe"
340342
end
341-
end
343+
end
344+
345+
def install_broker_cli(package_dir, package_target)
346+
case package_target
347+
when "linux-x86_64"
348+
sh "curl -L -o #{package_dir}/bin/pact-broker-cli https://github.com/pact-foundation/pact-broker-cli/releases/download/v#{PACT_BROKER_CLI_VERSION}/pact-broker-cli-x86_64-linux-musl"
349+
sh "chmod +x #{package_dir}/bin/pact-broker-cli"
350+
when "linux-arm64"
351+
sh "curl -L -o #{package_dir}/bin/pact-broker-cli https://github.com/pact-foundation/pact-broker-cli/releases/download/v#{PACT_BROKER_CLI_VERSION}/pact-broker-cli-aarch64-linux"
352+
sh "chmod +x #{package_dir}/bin/pact-broker-cli"
353+
when "osx-x86_64"
354+
sh "curl -L -o #{package_dir}/bin/pact-broker-cli https://github.com/pact-foundation/pact-broker-cli/releases/download/v#{PACT_BROKER_CLI_VERSION}/pact-broker-cli-x86_64-macos"
355+
sh "chmod +x #{package_dir}/bin/pact-broker-cli"
356+
when "osx-arm64"
357+
sh "curl -L -o #{package_dir}/bin/pact-broker-cli https://github.com/pact-foundation/pact-broker-cli/releases/download/v#{PACT_BROKER_CLI_VERSION}/pact-broker-cli-aarch64-macos"
358+
sh "chmod +x #{package_dir}/bin/pact-broker-cli"
359+
when "windows-x86_64"
360+
sh "curl -L -o #{package_dir}/bin/pact-broker-cli.exe https://github.com/pact-foundation/pact-broker-cli/releases/download/v#{PACT_BROKER_CLI_VERSION}/pact-broker-cli-x86_64-windows-gnu.exe"
361+
sh "chmod +x #{package_dir}/bin/pact-broker-cli.exe"
362+
end
363+
end

0 commit comments

Comments
 (0)