Pantheon workflow models
To help prevent the need for hot-fixes, and also to allow us to push specific commits to live, we leverage multidev + local development to much satisfaction.
I like to think about Pantheon workflows as mutable through the project lifecycle.
Not all projects will go through every phase, but here is a chronology, with latter phases demonstrating the announced philosopy:
Â
Â
DEV -> SNAPSHOT
Early project days. dev jam sessions.Â
TEST stores snapshots of working code
Â
DEV <-> TEST <-> SNAPSHOT
Things are less flaky and we release working code to LIVE periodically.Â
The DB may still move upstream.
TEST is a volatile play space, as it should be.
Â
Â
LOCAL > INTEGRATION <-> TEST
in early project days, things are happening fast and furious.Â
DEV is a space for integration
Push push push… if DEV's ok, up to test asap. Sometimes the DB goes upstream!
Once we get to the point of releasing a snapshot to LIVE, we initialize multidev, as below.
Â
here is where it gets interesting…
Â
LOCAL \Â Â TEST <-> LIVE
    \  SPRINT /
DEV is dead to us.
Clients can experiment on TEST because its a mirror of live.
SPRINT is an integration branch and acts as an integration/dev space.
Anything that’s good to go mid sprint gets cherry-picked to master and up to TEST for final QA, then LIVE. These are generally QA’d on SPRINT already so we don’t clog MASTER up and require a hotfix.
SPRINT is merged to MASTER end of sprint and deployed after client TESTing
The rubber hits the road on LIVE, and if a bug comes in we can squash them Kanban-like on MASTER while we continue SCRUM on our SPRINT branch unimpeded, merging MASTER back into SPRINT with spirit
Â
Â
    FEATURE
LOCAL >Â FEATUREÂ > INTEGRATION <-> TEST <-> LIVE
  FEATURE
Â
where FEATURE branches are multidev environments that act like multiple TEST environments
As approved these move to an integration branch – often our SPRINT branch
DEV, again, is dead to us
TEST is for final client QA before release
Cherry picking may occur
Â