pactflow / roadmap

Public Pactflow issue tracker and roadmap
MIT License
15 stars 0 forks source link

Provider contract CLI Publishing Tool #68

Closed mefellows closed 1 year ago

mefellows commented 2 years ago

Provider contract CLI Publishing Tool

The ability to publish a provider contract (such as an OAS) and verification results to Pactflow via a CLI.

Publish provider contract to Pactflow

  1. Add Pactflow Command to CLI sources
    1. [x] Gem pact_broker-client
    2. [x] CLI pact-ruby-standalone
    3. [x] Docker pact-ruby-cli
    4. [x] GitHub Action github-actions-pact-publish-provider-contract
  2. Add examples
    1. [x] Docs docs.pactflow.io
    2. [x] Gem pact_broker-client
    3. [x] CLI pact-ruby-standalone
    4. [x] Docker pact-ruby-cli
    5. [x] GitHub Action github-actions-pact-publish-provider-contract
    6. [x] Demo postman
    7. [x] Demo dredd
    8. [x] Demo restassured
    9. [x] Demo dotnet
    10. [x] Katacoda https://github.com/pactflow/katacoda-workshops/blob/master/pactflow-bi-directional-contracts-intro/step4.md
    11. [x] BDCT Workshops
      1. [x] Workshop https://docs.pactflow.io/docs/workshops/bi-directional/pre_requisites
      2. [x] Quick start guide https://docs.pactflow.io/docs/workshops/quick_starts/bdc
  3. Improve examples
    1. [x] Remove env var for PACTFLOW FEATURE
    2. [x] Use PACT_CLI_DOCKER_VERSION env var or fallback to latest
    3. GitHub Actions
      1. [x] Allow triggering of build with PACT_CLI_DOCKER_VERSION
      2. [x] GH Matrix - Separate Workflow, use composite consumer name
        1. [x] build to test Different OS's (mac/linux/windows)
        2. [x] build to test Different Docker CLI versions
        3. [x] build to test Different ways of publishing
          1. [x] Gem pact_broker-client
          2. [x] CLI pact-ruby-standalone
          3. [x] Docker pact-ruby-cli
          4. [x] GitHub Action github-actions-pact-publish-provider-contract
    4. Trigger example build on update of CLI tools
      1. [ ] Gem pact_broker-client
      2. [ ] CLI pact-ruby-standalone
      3. [ ] Docker pact-ruby-cli
      4. [ ] GitHub Action github-actions-pact-publish-provider-contract
YOU54F commented 2 years ago

See https://ncorti.com/blog/howto-github-actions-build-matrix for ideas for testing upcoming work

A great use case for build matrix is the setup of shadow CI jobs 👻.

A shadow CI job is a job that tests your project against an unreleased/unstable version of a dependency of your project. This helps you spot integration problems and regressions early on.

Generally, you want to treat a failure in a shadow job like a warning and don’t fail your whole workflow. This because you just want to get notified of a potential failure in the future, once a dependency becomes stable.

With such a setup, you could reach out to the library maintainer and notify them about unexpected problems or breaking changes.

YOU54F commented 2 years ago

Now delivered 🚀

Website docs

  1. Docker
  2. Pact Standalone CLI
  3. Pact Broker Client (Ruby)
  4. Github Actions