GitHub
08/08/2024, 5:49 PMcurl -fsSL <https://raw.githubusercontent.com/pact-foundation/pact-ruby-standalone/master/install.sh> | PACT_CLI_VERSION=v2.4.10 bash
MacOS
x86_64
curl -LO <https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v2.4.10/pact-2.4.10-osx-x86_64.tar.gz>
tar xzf pact-2.4.10-osx-x86_64.tar.gz
arm64
curl -LO <https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v2.4.10/pact-2.4.10-osx-arm64.tar.gz>
tar xzf pact-2.4.10-osx-arm64.tar.gz
Linux
x86_64
curl -LO <https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v2.4.10/pact-2.4.10-linux-x86_64.tar.gz>
tar xzf pact-2.4.10-linux-x86_64.tar.gz
arm64
curl -LO <https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v2.4.10/pact-2.4.10-linux-arm64.tar.gz>
tar xzf pact-2.4.10-linux-arm64.tar.gz
Windows
x86_64
curl -LO <https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v2.4.10/pact-2.4.10-windows-x86_64.zip>
unzip pact-2.4.10-windows-x86_64.zip
x86
curl -LO <https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v2.4.10/pact-2.4.10-windows-x86.zip>
unzip pact-2.4.10-windows-x86.zip
Pact Ruby Standalone
Build
Creates a standalone pact command line executable using the ruby pact implementation and Traveling Ruby
Package contents
This version (2.4.10) of the Pact standalone executables package contains:
• pact gem 1.65.1
• pact-mock_service gem 3.11.2
• pact-support gem 1.20.1
• pact-provider-verifier gem 1.38.1
• pact_broker-client gem 1.75.4
• pact-message gem 0.11.1
Binaries will be extracted into `pact/bin`:
./pact/bin/
├── pact
├── pact-broker
├── pactflow
├── pact-message
├── pact-mock-service
├── pact-provider-verifier
└── pact-stub-service
Windows Users
Please append .bat to any of the provided binaries
eg.
.\pact\bin\pact-broker.bat
Installation
See the release page.
Supported Platforms
Ruby is not required on the host platform, Ruby 3.3.3 is provided in the distributable.
| OS | Ruby | Architecture | Supported |
| ------- | ----- | --------------- | --------- |
| MacOS | 3.3.3 | x86_64 | ✅ |
| MacOS | 3.3.3 | aarch64 (arm64) | ✅ |
| Linux | 3.3.3 | x86_64 | ✅ |
| Linux | 3.3.3 | aarch64 (arm64) | ✅ |
| Windows | 3.3.3 | x86_64 | ✅ |
| Windows | 3.3.3 | x86 | ✅ |
| Windows | 3.3.3 | aarch64 (arm64) | 🚧 |
🚧 - Tested under emulation mode x86 / x86_64 in Windows on ARM
Usage
pact-mock-service
Commands:
pact-mock-service control # Run a Pact mock service control s...
pact-mock-service control-restart # Start a Pact mock service control...
pact-mock-service control-start # Start a Pact mock service control...
pact-mock-service control-stop # Stop a Pact mock service control ...
pact-mock-service help [COMMAND] # Describe available commands or on...
pact-mock-service restart # Start or restart a mock service. ...
pact-mock-service service # Start a mock service. If the cons...
pact-mock-service start # Start a mock service. If the cons...
pact-mock-service stop -p, --port=PORT # Stop a Pact mock service
pact-mock-service version # Show the pact-mock-service gem version
Usage:
pact-mock-service service
Options:
[--consumer=CONSUMER] # Consumer name
[--provider=PROVIDER] # Provider name
-p, [--port=PORT] # Port on which to run the service
-h, [--host=HOST] # Host on which to bind the service
# Default: localhost
-d, [--pact-dir=PACT_DIR] # Directory to which the pacts will be written
-m, [--pact-file-write-mode=PACT_FILE_WRITE_MODE] # `overwrite` or `merge`. Use `merge` when running multiple mock service instances in parallel for the same consumer/provider pair. Ensure the pact file is deleted before running tests when using this option so that interactions deleted from the code are not maintained in the file.
# Default: overwrite
-i, [--pact-specification-version=PACT_SPECIFICATION_VERSION] # The pact specification version to use when writing the pact. Note that only versions 1 and 2 are currently supported.
# Default: 2
-l, [--log=LOG] # File to which to log output
[--log-level=LOG_LEVEL] # Log level. Options are DEBUG INFO WARN ERROR
# Default: DEBUG
-o, [--cors=CORS] # Support browser security in tests by responding to OPTIONS requests and adding CORS headers to mocked responses
[--ssl], [--no-ssl], [--skip-ssl] # Use a self-signed SSL cert to run the service over HTTPS
# Default: false
[--sslcert=SSLCERT] # Specify the path to the SSL cert to use when running the service over HTTPS
[--sslkey=SSLKEY] # Specify the path to the SSL key to use when running the service over HTTPS
Start a mock service. If the consumer, provider and pact-dir options are provided, the pact will be written automatically on shutdown (INT).
pact-stub-service
```
Usage:
pact-stub-service PACT_URI ...
Options:
-p, [--port=PORT] # Port on which to run the service
-h, [--host=HOST] # Host on which to bind the service
# Default: localhost
-l, [--log=LOG] # File to which to log output
-n, [--broker-username=BROKER_USERNAME] # Pact Broker basic auth username
-p, [--broker-password=BROKER_PASSWORD] # Pact Broker basic auth password
-k, [--broker-token=BROKER_TOKEN] # Pact Broker bearer token (can also be set using the PACT_BROKER_TOKEN environment variable)
[--log-level=LOG_LEVEL] # Log level. Options are DEBUG INFO WARN ERROR
# Default: DEBUG
-o, [--cors=CORS] # Support browser security in tests by responding to OPTIONS requests and adding CORS headers to mocked responses
[--ssl], [--no-ssl], [--skip-ssl] # Use a self-signed SSL cert to run the service over HTTPS
# Default: false
[--sslcert=SSLCERT] # Specify the path to the SSL cert to use when running the service over HTTPS
[--sslkey=SSLKEY] # Specify the path to the SSL key to use when running the service over HTTPS
Description:
Start a stub service with the given pact file(s) or directories. Pact URIs
may be local file or directory paths, or HTTP. Include any basic auth details
in …
pact-foundation/pact-ruby-standalone