Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Guidance on branching strategy presents a typical pattern that we can apply to our work. In a nutshell, the feature branches are for work in progress, the non-versioned branches map to a specific deployment environment and the numbered branches for release and hotfix relate to work in progress on shippable and shipped code respectively. Once code is released, the master branch is tagged with the same release number of the corresponding branch.

2.

...

Environment Creation Steps

  1. Use the infrastructure pipeline to create and publish all Azure services to the correct resource group

  2. Create/update application settings in the app service

  3. Create/update all key vault values

  4. Create/update the database schema

  5. Create/update all application settings (ie appsettings.<environment>.json) in the solution

  6. Ensure all API permissions needed by the application in the Azure AD app registration have been added

  7. Expose scopes so that other applications can subscribe to them through API permissions. These are the same scopes that are referenced in a client application's app settings for making requests to the service.

  8. Add the application roles so that Azure AD users and groups can be assigned to them. The roles map 1-to-1 with the API scopes that we just exposed.

  9. From the app registration’s Overview settings, navigate to the enterprise application settings and assign Azure AD user groups to a role in the application. Since this is a shared API, there are obviously many more groups to be added. Also notice that 1 entry must be made on a per application role basis.

  10. Deploy the application to the app service using appropriate pipeline

  11. Depending on environment, the app service may need to be set to load the new build of the application by selecting the latest container. In example below, prod is shown and continuous integration is turned off.

3. Release Steps for TEST

  1. Set version of application in appsettings.json and commit to develop branch

  2. Break off your release branch from develop ensuring you are pointing at the correct commit, name it according to version and place it in release directory

  3. Publish the release branch to TEST environment by running the corresponding CI pipeline. You will need to edit the pipeline and set the correct branch to deploy.

    Image Added

4. Release Steps for PROD

  1. Merge the release branch into master branch by submitting a pull request

  2. Once the pull request is complete, tag the master branch with the version of application

  3. Publish the master branch by running the corresponding CI pipeline. You should not have to edit the pipeline since it should already point to master branch. Simply launch a manual publish of the pipeline.

  4. Log on to App Service and set the image tag to corresponding version that was just built from the pipeline

    Image Added