1

We support multiple umbraco websites for a client.

We have our local dev env, staging and live for each of them. Some time ago we started building and deploying all the websites with appveyor. Everyone pushes to feature branches and all of these get deployed to staging for testing. We don't have an env for release testing and lately we're having issues deploying branches to live. It happens when a feature that is dependant on other feature (which is not live) is merged with master and deployed live. What gets deployed to live is missing some stuff that's on the feature not live yet.

We've been busting our heads to get around this without adding a release environment (and thus using git flow fully). Is there some way around this?

Cheers all.

Edit: the files we're getting issues with are files generally used by all features such as js scripts and css files.

  • How does the staging environment from production in terms of what features are deployed there? – Bart van Ingen Schenau Jul 14 '18 at 14:46
  • 1
    This is why gitflow is evil. It actually discourages you from continuously integrating your work with one another. Consider a shift to feature toggles and trunk based dev. – RubberDuck Jul 14 '18 at 16:25
  • @bart features are only deployed from staging to live (develop branch to master branch) once they are approved by the website owner. This means that some features might take months to deploy to live while others may be deployed on the same day. – kenik Jul 14 '18 at 19:12
  • @kenik: Are you saying that you selectively deploy your features after you have tested them in an integrated fashion? That is a surefire recipe for botched deployments due to missing features that were available in develop. – Bart van Ingen Schenau Jul 14 '18 at 19:23
  • It happens when a feature (A) that is dependant on other feature (B) : then shouldn't A be forked off of B? So that if you deploy/release/push live A it means you push B too. Or you need other kind of automated manual dependency tracking. Before release a human could create a release/XXX branch and merge into it all features needed both directly and through dependencies. And you test release that before pushing it live. – Patrick Mevzek Aug 13 '18 at 21:20
1

I've faced a similar issue in the past. It turned out that in my case it was not a git flow problem, but a team collaboration problem.

What our team did back then was to enforce the usage of feature toggles. In order to synchronize work among teams, we've started to use temporary toggles for each feature that had a dependency with another feature or service that was not ready or deployed.

Along with that, we have started to use a sort of deprecation strategy. We've stopped to remove code that multiple modules were using and started to deprecate them (to be removed in the future). That way, we could add new code that solved the specific issue for the moment, without breaking any working module. Be aware that this could lead you to have a lot of unused code, so you need to use a strategy to keep track of all your technical debts related to your deprecated code.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.