I want to make sure I understand this properly.
In our company we have (for the sake of this discussion) 2 environments; QA and Production.
We also have 2 kinds of builds; QA Build (aka continuous integration) and Release builds.
In our world without Deployment projects, typically the QA folks could run a QA Build anytime they needed to then ask a SysAdmin to deploy it to QA server etc.
Ditto when it was time to do a release. We always accomplished this with 2 “plans” Easy.
So, I’m moving to deployment plans and I guess my question is this : how do you know when to add more tasks to one of your environments vs. when that task should instead be inside the build plan you linked to?
I might be answering my own question here, but given the environmental requirements I have, I picture this sort of configuration. ( We have over 10 almost identical projects… so i want to get this right before diving in)
1: I create a build plan for the QA builds. It should be more or less standalone where it will do these things
- source checkout
- build artifact
- apply db patches via liquibase
- copy artifact to jboss server.
2: Create a second plan (called plan-b) that makes only a release build and shares that build. Then create a deployment project with 2 environments that more or less behaves like this
- cleans the working directory for QA-environment
- takes down app from QA
- applies db patches via liquibase
- copies artifact from plan-b to the QA jboss server.
- end of QA release deploy
- begin of PROD release deploy (manual for now till we tie jira into things)
- clean working directory for PROD-environment
- take app down from PROD
- apply db patches via liquibase
- copies artifact from plan-b to PROD jboss server ( OH, can someone please answer for me how should i trigger the plan-b to actually produce the artifact ? or i guess i do that with jjira. one step to build, another step to start running the deployment project)
- end of PROD release deploy.
I think I answered my own question and created a valid scenario. It just seems like I’m re-doing the same things a few times such as copying to jboss, running liquibase tasks and it felt like I was re-doing the same work more than once.