Recently we have published first version of our public tools for Azure DevOps. You may find them here: https://github.com/Oriflame/devops

Currently there are following tools:

  • Script to initialize Azure DevOps repositories so they follow Gitflow
  • Template for yaml pipeline for building&publishing nuget package

Repository initialization script

It does following:

  • check & install prerequisites:
  • it checks, if we are in GIT repository and if not, it clones the repository
  • it switches to master branch
  • if develop branch does not exist it is created
  • it updates proper rights in the repository
    • contributors are allowed to create branches only under feature/* and user/*
    • only project admins can create release/* branches.
  • it checks for CI build (named like ‘{branchName}-CI’) id.
  • it creates proper policies over develop and master branches (existing policies will be removed):
    • for each branch see scripts/init-repo/resources/branch-policies-{branchname}.json
    • it requires CI build to be successful for every pull request (PR) to develop, master
    • it requires work item to be assigned to PR
    • it requires code review from at least one colleague
    • all comments needs to be resolved

More information can be found here: docs/init-repo.md

Yaml pipelines

Yaml pipeline templates can be used in Azure DevOps to standardize the build, test, analyzes and deployment.

At the moment we have published nuget-pipeline template. It uses dotnet core build, tests, pack. It can publish the generated nuget package to Azure DevOps artifacts. It uses gitversion to properly version the package.

Our repository contains also CI builds so we can test our changes on local repository test projects before publishing.

You can easily reference published versions from our github repository like this:

resources:
  repositories:
    - repository: templates #reference in this pipeline
      type: github
      name: oriflame/devops
      ref: 'refs/tags/1.0'

#triggers definition etc 

jobs:
- template: pipelines/nuget-package/default-ci-pipeline.yaml@templates
  parameters:
    vmImage: 'windows-2019' # sample parameter

Hope our tools/templates will be useful for you. We are looking forward for any feedback!

Leave a Reply

Blog at WordPress.com.

%d bloggers like this: