locked
Branch-per-feature, Environment branches and Azure Pipelines RRS feed

  • Question

  • Background:

    We have an in-house CI/CD tool based on F#'s FAKE that performs the following workflow:

    • user enters 2 parameters: $source-branch and $target-environment
    • pull master
    • pull $source-branch
    • pull $target-environment (there is a git branch for every environment: DEVTEST, etc, except for PROD which is hard-coded to master)
    • create a temporary branch from $target-environment called $target-environment-$current-date-$source-branch (for instance DEV-201811271840-SomeNewFeature)
    • merge master into temp branch
    • merge $source-branch into temp branch
    • execute build script
    • deploy
    • if deploy succeeds, then merge temp branch into $target-environment.
    • delete temp branch

    Problem:

    Without getting into too much detail about the build/deploy steps (which are a whole different conversation) I'd like to know if/how can I replicate this workflow in Azure Pipelines.

    It seems that all documentation and even all the options in the UI refer to a different use case.

    We want to be able to push our feature branches, have them merged to the environment branches (and eventually to masterafter they're deployed, and not before, which is why we're performing build/test/deploy steps in a temporary branch, which gets merged into $environment ONLY after the build/test/deploy steps succeed.

    Question:

    Is this even possible using Azure Pipelines without resorting to custom code? I haven't found any documentation about it and the options in the UI don't seem to help either.

    Question 2:

    Maybe I'm approaching this from the wrong angle? I'd also like to know if there's a better way to achieve the same thing with pull requests, which would give me a chance to perform a code review before deploying.

    Any advice is greatly appreciated.

    Thursday, November 29, 2018 3:58 PM

All replies