- related repository - pact-consumer-poc
pnpm install
pnpm start
-
setup environment vars
export PACT_BROKER_BASE_URL=https://domain.pactflow.io export PACT_BROKER_TOKEN=******
-
verify published contract from pactflow.io against provider (start provider first)
pnpm start pnpm pact:verify
5. Pact CLI
- Verify Pact and publish results to Pactflow (consumer driven contract testing)
$hash=git rev-parse --short head
$branch=git rev-parse --abbrev-ref head
docker run `
--rm `
-w /opt/pact `
-v ${PWD}:/opt/pact `
-e PACT_BROKER_BASE_URL `
-e PACT_BROKER_TOKEN `
pactfoundation/pact-cli:latest verify `
--provider "pact-provider-poc" `
--provider-version-branch $branch `
--provider-app-version $hash `
--provider-base-url http://host.docker.internal:1113 `
--consumer-version-selector '{\"matchingBranch\": true, \"mainBranch\": true}' `
--enable-pending `
--fail-if-no-pacts-found `
--publish-verification-results
- Publish OpenApi provider contract (bidirectional contract testing)
$hash=git rev-parse --short head
$branch=git rev-parse --abbrev-ref head
docker run --rm `
-w /opt/pact `
-v ${PWD}:/opt/pact `
-e PACT_BROKER_BASE_URL `
-e PACT_BROKER_TOKEN `
pactfoundation/pact-cli:latest pactflow publish-provider-contract api-docs.yaml `
--provider "pact-provider-poc" `
--provider-app-version $hash `
--branch $branch `
--content-type application/yaml
# to also verify contract uncomment next lines
#--verifier postman `
#--verification-exit-code=0
#--verification-results postman-verification-summary.json `
#--verification-results-content-type text/plain
- Can I deploy
$hash=git rev-parse --short head
$branch=git rev-parse --abbrev-ref head
docker run --rm `
-w /opt/pact `
-v ${PWD}:/opt/pact `
-e PACT_BROKER_BASE_URL `
-e PACT_BROKER_TOKEN `
pactfoundation/pact-cli:latest pact-broker can-i-deploy `
--pacticipant pact-provider-poc `
--version $hash `
--to-environment preprod
- Record deployment/release
$hash=git rev-parse --short head
docker run --rm `
-w /opt/pact `
-v ${PWD}:/opt/pact `
-e PACT_BROKER_BASE_URL `
-e PACT_BROKER_TOKEN `
pactfoundation/pact-cli:latest pact-broker record-deployment `
--pacticipant pact-provider-poc `
--version $hash `
--environment test