For compliance reasons, all pull requests must be submitted with a Jira ID in the pull request title. You should include the Jira ID near the beginning of the title for better readability. For example: "[WM-1992] add statement to README.md and DEVELOPMENT.md about including Jira IDs in PR titles"
If there is more than one relevant ticket, include all of their Jira IDs. For example: "WM-1997, WM-2002, WM-2005: Fix for many bugs with the same root cause"
The C-BAS service follows the Google Cloud API versioning scheme of semantic versioning. For more information, please visit this document.
The following workflows are executed in tandem
- build-and-test.yml
- tag-and-publish.yml
to support consistent versioning among all published CBAS artifacts which includes
cbas-clientpublished to artifactory and dockerhubCBASconsumer pact published to Pact BrokerCBASprovider verification test results published to Pact Broker
Here's the process we follow to maintain versioning consistency.
build-and-test.ymlto run unit or integration testsconsumer-contract-tests.ymlto publishCBASpact to Pact Brokerverify_consumer_pacts.ymlto verify all consumers dependent onCBASand publish the results to Pact Broker- Both
CBASpact and provider verification results will be published to Pact Broker with a version in the format<semver>-<7-digit commit hash>. Thesemverwill be the next tag over the current release tag recorded in GitHub. The combined<semver>-<7-digit commit hash>is published to Pact Broker for recording purpose. It is important to note that this tag will not be dispatched to GitHub
build-and-test.ymlto run unit or integration testsconsumer-contract-tests.ymlto publishCBASpact to Pact Brokerverify_consumer_pacts.ymlto verify all consumers dependent onCBASand publish the results to Pact Brokertag-and-publish.ymlto dispatch the new tag along with publishingCBASimages to artifactory and dockerhub- Both
CBASpact and provider verification results will be published to Pact Broker with the new tag - The new tag is going to be the next GitHub release tag over the release tag right before merge and does not carry the 7-digit commit hash
- The new tag is applied consistently across all artifacts to be published during merge.
- In addition, the
bumptagbotwill bypasstag-and-publish.ymlso tagging won't happen again right after merge