@ -0,0 +1,32 @@ | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/ApiGateways/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/apigws/* | |||
- deploy/k8s/helm/apigwmm/* | |||
- deploy/k8s/helm/apigwms/* | |||
- deploy/k8s/helm/apigwwm/* | |||
- deploy/k8s/helm/apigwws/* | |||
exclude: | |||
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/* | |||
- src/ApiGateways/Web.Bff.Shopping/aggregator/* | |||
jobs: | |||
- job: PublishCharts | |||
condition: ne('$(Build.Reason)', 'PullRequest') | |||
pool: | |||
vmImage: 'ubuntu-16.04' | |||
steps: | |||
- task: CopyFiles@2 | |||
inputs: | |||
sourceFolder: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
targetFolder: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- task: PublishBuildArtifacts@1 | |||
inputs: | |||
pathtoPublish: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
artifactName: helm |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Basket/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/basket-api/* | |||
- deploy/k8s/helm/basket-api/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: basket-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: basket.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,94 @@ | |||
parameters: | |||
services: '' | |||
registryEndpoint: '' | |||
helmfrom: '' | |||
helmto: '' | |||
jobs: | |||
- job: BuildContainersForPR_Linux | |||
condition: eq('${{ variables['Build.Reason'] }}', 'PullRequest') | |||
pool: | |||
vmImage: 'ubuntu-16.04' | |||
steps: | |||
- bash: docker-compose -f src/docker-compose.yml build ${{ parameters.services }} | |||
displayName: Compose build ${{ parameters.services }} | |||
env: | |||
TAG: ${{ variables['Build.SourceBranchName'] }} | |||
- job: BuildContainersForPR_Windows | |||
condition: False | |||
# condition: eq('${{ variables['Build.Reason'] }}', 'PullRequest') | |||
pool: | |||
vmImage: 'windows-2019' | |||
steps: | |||
- bash: docker-compose f src/docker-compose.yml build ${{ parameters.services }} | |||
displayName: Compose build ${{ parameters.services }} | |||
env: | |||
TAG: ${{ variables['Build.SourceBranchName'] }} | |||
PLATFORM: win | |||
NODE_IMAGE: stefanscherer/node-windows:10 | |||
- job: BuildLinux | |||
condition: ne('${{ variables['Build.Reason'] }}', 'PullRequest') | |||
pool: | |||
vmImage: 'ubuntu-16.04' | |||
steps: | |||
- task: DockerCompose@0 | |||
displayName: Compose build ${{ parameters.services }} | |||
inputs: | |||
dockerComposeCommand: 'build ${{ parameters.services }}' | |||
containerregistrytype: Container Registry | |||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} | |||
dockerComposeFile: src/docker-compose.yml | |||
qualifyImageNames: true | |||
projectName: "" | |||
dockerComposeFileArgs: | | |||
TAG=${{ variables['Build.SourceBranchName'] }} | |||
- task: DockerCompose@0 | |||
displayName: Compose push ${{ parameters.images }} | |||
inputs: | |||
dockerComposeCommand: 'push ${{ parameters.services }}' | |||
containerregistrytype: Container Registry | |||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} | |||
dockerComposeFile: src/docker-compose.yml | |||
qualifyImageNames: true | |||
projectName: "" | |||
dockerComposeFileArgs: | | |||
TAG=${{ variables['Build.SourceBranchName'] }} | |||
- task: CopyFiles@2 | |||
inputs: | |||
sourceFolder: ${{ parameters.helmfrom }} | |||
targetFolder: ${{ parameters.helmto }} | |||
- task: PublishBuildArtifacts@1 | |||
inputs: | |||
pathtoPublish: ${{ parameters.helmto }} | |||
artifactName: helm | |||
- job: BuildWindows | |||
condition: False | |||
# condition: ne('${{ variables['Build.Reason'] }}', 'PullRequest') | |||
pool: | |||
vmImage: 'windows-2019' | |||
steps: | |||
- task: DockerCompose@0 | |||
displayName: Compose build ${{ parameters.services }} | |||
inputs: | |||
dockerComposeCommand: 'build ${{ parameters.services }}' | |||
containerregistrytype: Container Registry | |||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} | |||
dockerComposeFile: src/docker-compose.yml | |||
qualifyImageNames: true | |||
projectName: "" | |||
dockerComposeFileArgs: | | |||
TAG=${{ variables['Build.SourceBranchName'] }} | |||
PLATFORM=win | |||
NODE_IMAGE=stefanscherer/node-windows:10 | |||
- task: DockerCompose@0 | |||
displayName: Compose push ${{ parameters.services }} | |||
inputs: | |||
dockerComposeCommand: 'push ${{ parameters.services }}' | |||
containerregistrytype: Container Registry | |||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} | |||
dockerComposeFile: src/docker-compose.yml | |||
qualifyImageNames: true | |||
projectName: "" | |||
dockerComposeFileArgs: | | |||
TAG=${{ variables['Build.SourceBranchName'] }} | |||
PLATFORM=win |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Catalog/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/catalog-api/* | |||
- deploy/k8s/helm/catalog-api/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: catalog-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: catalog.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Identity/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/identity-api/* | |||
- deploy/k8s/helm/identity-api/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: identity-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: identity.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,28 @@ | |||
pool: | |||
vmImage: 'ubuntu-16.04' | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/infrastructure/* | |||
- deploy/k8s/helm/basket-data/* | |||
- deploy/k8s/helm/keystore-data/* | |||
- deploy/k8s/helm/nosql-data/* | |||
- deploy/k8s/helm/rabbitmq/* | |||
- deploy/k8s/helm/sql-data/* | |||
steps: | |||
- task: CopyFiles@2 | |||
inputs: | |||
sourceFolder: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
targetFolder: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- task: PublishBuildArtifacts@1 | |||
inputs: | |||
pathtoPublish: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
artifactName: helm |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Location/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/location-api/* | |||
- deploy/k8s/helm/locations-api/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: locations-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: locations.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Marketing/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/marketing-api/* | |||
- deploy/k8s/helm/marketing-api/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: marketing-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: marketing.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/ApiGateways/Mobile.Bff.Shopping/aggregator/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/mobile-shopping-agg/* | |||
- deploy/k8s/helm/mobileshoppingagg/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: mobileshoppingagg | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: mobileshoppingagg | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) | |||
@ -0,0 +1,33 @@ | |||
parameters: | |||
image: '' | |||
branch: '' | |||
registry: 'eshop' | |||
registryEndpoint: '' | |||
jobs: | |||
- job: manifest | |||
condition: and(succeeded(),ne('${{ variables['Build.Reason'] }}', 'PullRequest')) | |||
dependsOn: | |||
# - BuildWindows | |||
- BuildLinux | |||
pool: | |||
vmImage: 'Ubuntu 16.04' | |||
steps: | |||
- task: Docker@1 | |||
displayName: Docker Login | |||
inputs: | |||
command: login | |||
containerregistrytype: 'Container Registry' | |||
dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} | |||
# Disabled windows deploy | |||
# docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:linux-${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:win-${{ parameters.branch }} | |||
# docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:latest ${{ parameters.registry }}/${{ parameters.image }}:linux-latest ${{ parameters.registry }}/${{ parameters.image }}:win-latest | |||
- bash: | | |||
mkdir -p ~/.docker | |||
sed '$ s/.$//' $DOCKER_CONFIG/config.json > ~/.docker/config.json | |||
echo ',"experimental": "enabled" }' >> ~/.docker/config.json | |||
docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }} ${{ parameters.registry }}/${{ parameters.image }}:linux-${{ parameters.branch }} | |||
docker --config ~/.docker manifest create ${{ parameters.registry }}/${{ parameters.image }}:latest ${{ parameters.registry }}/${{ parameters.image }}:linux-latest | |||
docker --config ~/.docker manifest push ${{ parameters.registry }}/${{ parameters.image }}:${{ parameters.branch }} | |||
docker --config ~/.docker manifest push ${{ parameters.registry }}/${{ parameters.image }}:latest | |||
displayName: Create multiarch manifest |
@ -0,0 +1,29 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Ordering/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/ordering-api/* | |||
- deploy/k8s/helm/ordering-api/* | |||
- deploy/k8s/helm/ordering-backgroundtasks/* | |||
- deploy/k8s/helm/ordering-signalrhub/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: ordering-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: ordering.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Payment/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/payment-api/* | |||
- deploy/k8s/helm/payment-api/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: payment-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: payment.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,5 @@ | |||
# Azure DevOps build definitions | |||
This folder contains the Azure DevOps build definitions in YAML format. Each folder contains one `azure-pipelines.yml` that contains the build definition for one microservice (usually a Docker image, but some microservices generates more than one Docker image). | |||
For more information about YAML builds read the [Azure DevOps documentation](https://docs.microsoft.com/azure/devops/pipelines/get-started-yaml?view=azure-devops). |
@ -0,0 +1,26 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/ApiGateways/Web.Bff.Shopping/aggregator/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/web-shopping-agg/* | |||
- deploy/k8s/helm/webshoppingagg/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: webshoppingagg | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: webshoppingagg | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Services/Webhooks/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/webhooks-api/* | |||
- deploy/k8s/helm/webhooks-api/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: webhooks-api | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: webhooks.api | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Web/WebhookClient/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/webhooks-client/* | |||
- deploy/k8s/helm/webhooks-web/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: webhooks-client | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: webhooks.client | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Web/WebMVC/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/webmvc/* | |||
- deploy/k8s/helm/webmvc/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: webmvc | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: webmvc | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Web/WebSPA/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/webspa/* | |||
- deploy/k8s/helm/webspa/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: webspa | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: webspa | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |
@ -0,0 +1,27 @@ | |||
variables: | |||
registryEndpoint: eshop-registry | |||
trigger: | |||
branches: | |||
include: | |||
- master | |||
- dev | |||
paths: | |||
include: | |||
- src/BuildingBlocks/* | |||
- src/Web/WebStatus/* | |||
- build/azure-devops/buildimages.yml | |||
- build/azure-devops/multiarch.yml | |||
- build/azure-devops/webstatus/* | |||
- deploy/k8s/helm/webstatus/* | |||
jobs: | |||
- template: ../buildimages.yaml | |||
parameters: | |||
services: webstatus | |||
registryEndpoint: $(registryEndpoint) | |||
helmfrom: $(Build.SourcesDirectory)/deploy/k8s/helm | |||
helmto: $(Build.ArtifactStagingDirectory)/deploy/k8s/helm | |||
- template: ../multiarch.yaml | |||
parameters: | |||
image: webstatus | |||
branch: $(Build.SourceBranchName) | |||
registryEndpoint: $(registryEndpoint) |