Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

20. Azure Devops pipelines

Eduard Tomàs edited this page May 29, 2019 · 7 revisions

Build pipelines

Folder /build/azure-devops has all the YAML files for all build pipelines. Although (for simplicity reasons) eShopOnContainers has all code in the same repo, we have one separated build per microservice. All builds have two jobs (named BuildLinux and BuildWindows) that build the linux version and the windows version of the microservice.

We use path filters to queue only the build when commits have files in certain paths. For example, this is the path filters sections of the Web Status microservice:

  paths:
    include:
    - src/BuildingBlocks/*
    - src/Web/WebStatus/*
    - k8s/helm/webstatus/* 

The build will be triggered if the commits have some file in these folders. Any other change won't trigger the build. Using path filters we have the flexibility to use a single repository, separated builds and trigger only the needed builds.

Plase, refer the Azure Devops YAML build pipelines documentation for more information.

Windows vs Linux images

Each build generates the windows AND linux images (note that we could have two separated builds instead). Build pushes the images to eshop Dockerhub.

  • Linux image have tag linux-<branch> where <branch> is the git branch that triggered the build.
  • Windows image have tag win-<branch> where <branch> is the git branch that triggered the build.

We have multiarch tags, for the tags dev, master and latest, so you don't need to use win-dev or linux-dev, the tag dev will pick the right architecture automatically. Only this three tags have multiarch, and they are the only tags intended to be used. The tag dev is the most updated.

Clone this wiki locally