Question about mobile consumers: Is it necessary f...
# pact-broker
e
Question about mobile consumers: Is it necessary for mobile apps to
record-deployment
in non-prod environments, or can we just perform
record-release
in production environments? Context: We have several providers that were only running
can-i-merge
as part of their CI pipelines because they figured as long as the mainline build was passing, they could roll out to prod without issue. This was fine until mobile consumers needed those providers to verify against version*s* (plural) in prod. Now, they need to run
can-i-deploy
at least in those production envs. I work on the Mobile consumer team. I initially implemented
can-i-deploy
(every pipeline run, all envs) and
record-deployment
(only for non-prod envs when merging back to our
mainline
) steps in our pipeline, but now thinking about it, I don't know how much sense that makes, since consumers are running against our mainline with
can-i-merge
anyway. So the updated pipelines would be: • For story and feature branches: ◦
publish
◦
can-i-merge
• For
release/
branches: ◦
publish
◦
can-i-deploy
◦ Post-release to App Store and Google Play:
record-release
m
Yeah that seems sensible
what does “deployed” (or “released”) look like in non-prod environments? With web apps or APIs, you would usually deploy them to an environment to play with. But I’m guessing it’s a bit different with mobile?
e
what does “deployed” (or “released”) look like in non-prod environments?
Good question. We have a fairly large team that deals with 2-6 projects at the same time. Most projects use feature branches comprised of story branches that get merged back to
mainline
when the project is complete. A debug version of our apps can point to any combination of region + environment, but the app doesn't get deployed to an environment the same way an API or web app does. Testers can choose to download any version of the app from github that's been built, rather than the latest built version superseding the rest. So the deployment metaphor doesn't really fit. In an earlier question, I said:
Our current setup has us "recording a deployment" from
mainline
whenever we merge feature, bug, or story branch back into it. In this way,
mainline
serves as our non-prod environment(s).
But since most of our
providers
are using
can-i-merge
, they'd just be testing against mainline anyways.
m
yeah makes sense to me Eliott. There are no hard and fast rules really, it’s what works for you and your process. My view of your discourse on this topic so far is you have a pretty decent comprehension - so if this works for you, i’d stick with it!
e
Ok, thank you!