Supporting explicit deployments #384
Replies: 2 comments 7 replies
-
What is the noun that means "a specific version of an application running in a specific environment for a period of time that starts when it is deployed, and ends when it is undeployed (ie. when the next version is deployed)". "instance" has been suggested.
|
Beta Was this translation helpful? Give feedback.
-
The record deployment and release APIs are now done and documented here. https://docs.pact.io/pact_broker/recording_deployments_and_releases The only thing I've got to finish before its official release is the undeploy/end support api. |
Beta Was this translation helpful? Give feedback.
-
Tags are currently used to represent branches and stages. They are very flexible and non-prescriptive in order to support as many different organisations' workflows as possible, but some people find the flexibility confusing and might prefer a more prescriptive model.
I have started work on supporting a resource model that represents deployments of pacticipant versions to environments. The first PR to create environment resources is here.
I am planning a CLI command that would replace the current
pact-broker create-version-tag --tag ${stage}
after a deployment with something like:This would make a new "deployment" resource with the pacticipant/version/environment relationships.
The can-i-deploy command would modified to support an explicit environment:
Some applications only have one version deployed in them at a time (eg. APIs) and some have multiple (eg. mobile consumers, or environments where A/B releases are performed). I would like a way to flag whether the operation should mark the previous deployment as ended or not (ie. does this deployment mean that the previous deployment has ended, or is it in addition/in parallel to the previous one). By default, it would be considered to end the previous deployment. Marking previous deployments as ended would allow us to easily know what versions of all applications are currently in a particular environment, and remove the need for the
--to-all
customisation in thecan-i-deploy
command when mobile consumers are involved.The flag I had suggested to toggle between "this deployment replaces the previous one" and "this is in addition to the previous one" was
--end-previous-deployment
, however, the initial feedback was that this was unclear. I think that the term "deployment" was being understood to mean "the time between starting the deployment process and the application being deployed" rather than "the time that the application is deployed/running in a particular environment". Happy to take thoughts on whether there are better terms to use than "deployment", and on any of the other ideas I've mentioned above.Beta Was this translation helpful? Give feedback.
All reactions