Example Provider
Source Code
https://github.com/pactflow/example-provider-dotnet
: https://github.com/pactflow/example-provider-dotnet/actions/workflows/build.yml
(latest)
(prod)
This is an example of a .NET 8 provider that uses Pact, API Hub for Contract Testing and Travis CI to ensure that it is compatible with the expectations its consumers have of it.
The project uses a Makefile to simulate a very simple build pipeline with two stages - test and deploy.
The latest version of the Example Consumer/Example Provider pact is published here.
Project Phases
The project uses a Makefile to simulate a very simple build pipeline with two stages - test and deploy.
Test
Run tests (including the pact tests that generate the contract)
Publish pacts, tagging the consumer version with the name of the current branch
Check if we are safe to deploy to prod (ie. has the pact content been successfully verified)
Deploy (only from master)
Deploy app (just pretend for the purposes of this example!)
Tag the deployed consumer version as 'prod'
Dependencies
Docker
A API Hub for Contract Testing account
A read/write API Token from your API Hub for Contract Testing account
.NET 8.x installed. Installation instructions can be found here: https://learn.microsoft.com/en-us/dotnet/core/install/
Usage
See the API Hub for Contract Testing CI/CD Workshop for further details.
The below commands are designed for a Linux/OSX environment, please translate for use on Windows/PowerShell as necessary:
Please ensure the following environment variables have been exported in the process that you run the tests (generally a terminal):
export PACT_BROKER_TOKEN=<your pactflow read/write token here> export PACT_BROKER_BASE_URL=https://<your pactflow subdomain>.pactflow.io
Simulating CI
Usually, you would integrate this into a real CI system (such as Buildkite/Jenkins/CircleCI etc., or Travis as this repository is built against).
You can simulate a CI process with the following command:
make fake_ci