-
Notifications
You must be signed in to change notification settings - Fork 10.3k
20. Azure Devops 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.
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.
- System requirements
- Development setup
- Databases & containers
- Architecture
- Application
- Code
- Logging and Monitoring
- Tests