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 740 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

     

Please Sign in or register to post replies

Write your reply to:

Draft