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:
- in case GIT command is missing it installs chocolatey and git
- in case TF tool is missing it installs Team Explorer
- 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