Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

App build/deployment workflow

What do you use to manage the workflow of deploying your application after the build completes? I'm not talking about just the act of getting files on a server, I'm talking about what happens after that. Verification, testing, approval, migration to production, retiring old builds, etc.

Example:

  1. Build completes
  2. Build is deployed to a test environment
  3. Testing is completed (manual step)
  4. If testing passes deploy to UAT else reject build
  5. UAT is completed (manual step)
  6. If UAT passes deploy to Prod else reject build
  7. Retire build previously in Prod

Any good applications out there that can manage long running build workflows?

Update

I should also mention that I'm looking for tooling that actually implements the workflow and not just to track what state it's in. (Copy build, change build status, send emails, start/stop services, etc)

like image 841
Ryan Rinaldi Avatar asked Jun 22 '10 19:06

Ryan Rinaldi


People also ask

What is deployment workflow?

Deployment is about making the software product available to the end-user, and is the culmination of the software development effort.

What is GitHub workflow?

A workflow is a configurable automated process that will run one or more jobs. Workflows are defined by a YAML file checked in to your repository and will run when triggered by an event in your repository, or they can be triggered manually, or at a defined schedule.


2 Answers

This build and release systems are a mixture of different stuff, so following your list I'll respond:

  1. Build completes (CruiseControl with Maven Build)
  2. Build is deployed to a test environment (Ant task, called from CruiseControl)
  3. Testing is completed (manual step) (Maven tells you this)
  4. If testing passes deploy to UAT else reject build (If the tests fail, Maven won't end, no call to the ant deployer)

From here on, we do it pretty much with a mixture of ant and bash scripts

  1. UAT is completed (manual step)
  2. If UAT passes deploy to Prod else reject build
  3. Retire build previously in Prod

The harder thing we've found was to restart our application servers since we haven't had good experiences with hot deployments but it's doable with only maven, ant and bash.

like image 125
Eldelshell Avatar answered Nov 23 '22 20:11

Eldelshell


A lot of companies use a project scheduling application, like MS Project.

Here's an open source project scheduling application, Open Workbench, that you might find useful. It has limitations, but I've used it to manage my schedules.

like image 42
Gilbert Le Blanc Avatar answered Nov 23 '22 21:11

Gilbert Le Blanc