Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Matt Barlow | jacker.io 164 posts 727 karma points c-trib
    Jul 24, 2013 @ 12:23
    Matt Barlow | jacker.io
    0

    Umbraco and Continuous Integration (Revisited)

    It's been a while since the topic of Continuous Integration has come up. There was a post back in 2009 about it, that's 4 years ago and alot has happened in Umbraco land since then.

    http://our.umbraco.org/forum/developers/api-questions/9730-Umbraco-and-Continuous-Integration

    I'm looking to implement a CI workflow, my question is what are other developers using? what works and what doesn't work?

     

    At the moment I have identified the following technolgies:

    Version Control System - GIT

    GIT Client - Smart Git/Hg

    Deployment + External Repository Host - Beanstalk

    Continuous Integration Server - TeamCity

     

    The solution am considering involves building a web-front end to automate the creation of repos (Dev | Staging | Live) on Beanstalk (using it's REST api) and automatically creating the projects in TeamCity (again using REST API).

    Setting up a project

    1. Login to web-front end – this will be built to hook into Beanstalk / Teamcity.
    2. Create a new project.
    3.  Input project details.
    4.  Automated set-up of repositories in Beanstalk with REST API.
    5.  One repository created with several branches - one per environment Main branch - (Dev, Staging, Live).
    6.  Automated set-up of the project on the build-server (TeamCity) with REST API.
    7. Automatically set the deployment details - allows deployment on commit.
    8.  Clone the repository with SmartGit/hg to a local folder.

    Small code changes

    1. Work on the Dev branch locally - make change in working copy.
    2. Commit change with SmartGit/Hg.
    3. Commit detected by TeamCity.
    4. Runs a Build - tests –  then reports the findings.
    5. All good - automated deploy to Dev environment (web hook - or commit message).

    New features

    1.  Create new branch with SmartGit/Hg (derived from Dev).
    2.  Work - multiple commits and builds.
    3.  Run final build tests.
    4.  All good - merge to Dev repository.
    5.  Automated deployment to Dev environment.

    Pushing changes to Staging / Live

    1. Merge Dev branch to Staging / Live.
    2. Commit changes + push.
    3.  All good - automated deployment to the correct environment. (web hook)

    Alot of this is based on the hard-work done by Anthony Dang and his great series of Automation Sparta posts. Comments welcome, especially if you have a similar process, or a process that works well and are willing to share.

    Thanks,

    Matt

     

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies