diff --git a/build/azure-devops/apigws/azure-pipelines.yml b/build/azure-devops/apigws/azure-pipelines.yml index 0fe398c73..0a00484b4 100644 --- a/build/azure-devops/apigws/azure-pipelines.yml +++ b/build/azure-devops/apigws/azure-pipelines.yml @@ -16,68 +16,10 @@ trigger: - src/ApiGateways/Mobile.Bff.Shopping/aggregator/* - src/ApiGateways/Web.Bff.Shopping/aggregator/* jobs: -- job: BuildLinux - pool: - vmImage: 'ubuntu-16.04' - steps: - - task: DockerCompose@0 - displayName: Compose build apigws - inputs: - dockerComposeCommand: 'build mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw' - containerregistrytype: Container Registry - dockerRegistryEndpoint: $(registryEndpoint) - dockerComposeFile: docker-compose.yml - qualifyImageNames: true - projectName: "" - dockerComposeFileArgs: | - TAG=$(Build.SourceBranchName) - - task: DockerCompose@0 - displayName: Compose push apigws - inputs: - dockerComposeCommand: 'push mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw' - containerregistrytype: Container Registry - dockerRegistryEndpoint: $(registryEndpoint) - dockerComposeFile: docker-compose.yml - qualifyImageNames: true - projectName: "" - dockerComposeFileArgs: | - TAG=$(Build.SourceBranchName) - - task: CopyFiles@2 - inputs: - sourceFolder: $(Build.SourcesDirectory)/k8s/helm - targetFolder: $(Build.ArtifactStagingDirectory)/k8s/helm - - task: PublishBuildArtifacts@1 - inputs: - pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm - artifactName: helm -- job: BuildWindows - pool: - vmImage: 'windows-2019' - steps: - - task: DockerCompose@0 - displayName: Compose build apigws - inputs: - dockerComposeCommand: 'build mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw' - containerregistrytype: Container Registry - dockerRegistryEndpoint: $(registryEndpoint) - dockerComposeFile: docker-compose.yml - qualifyImageNames: true - projectName: "" - dockerComposeFileArgs: | - TAG=$(Build.SourceBranchName) - PLATFORM=win - - task: DockerCompose@0 - displayName: Compose push apigws - inputs: - dockerComposeCommand: 'push mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw' - containerregistrytype: Container Registry - dockerRegistryEndpoint: $(registryEndpoint) - dockerComposeFile: docker-compose.yml - qualifyImageNames: true - projectName: "" - dockerComposeFileArgs: | - TAG=$(Build.SourceBranchName) - PLATFORM=win +- template: ../buildimages.yaml + parameters: + images: mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw + registryEndpoint: $(registryEndpoint) - template: ../multiarch.yaml parameters: image: ocelotapigw diff --git a/build/azure-devops/buildimages.yaml b/build/azure-devops/buildimages.yaml new file mode 100644 index 000000000..81d688961 --- /dev/null +++ b/build/azure-devops/buildimages.yaml @@ -0,0 +1,92 @@ +parameters: + images: '' + registryEndpoint: '' + +jobs: +- job: BuildContainersForPR_Linux + condition: eq(${{ variables['Build.Reason'] }}, 'PullRequest')) + pool: + vmImage: 'ubuntu-16.04' + steps: + - task: Bash@3 + displayName: Create multiarch manifest + inputs: + script: docker-compose build ${{ parameters.images }} + env: + TAG: ${{ variables['Build.SourceBranchName'] }} +- job: BuildContainersForPR_Windows + condition: eq(${{ variables['Build.Reason'] }}, 'PullRequest')) + pool: + vmImage: 'windows-2019' + steps: + - task: Bash@3 + displayName: Create multiarch manifest + inputs: + env: + TAG: ${{ variables['Build.SourceBranchName'] }} + PLATFORM: win + script: docker-compose build ${{ parameters.images }} +- job: BuildLinux + condition: ne(${{ variables['Build.Reason'] }}, 'PullRequest')) + pool: + vmImage: 'ubuntu-16.04' + steps: + - task: DockerCompose@0 + displayName: Compose build ${{ parameters.images }} + inputs: + dockerComposeCommand: 'build ${{ parameters.images }}' + containerregistrytype: Container Registry + dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} + dockerComposeFile: docker-compose.yml + qualifyImageNames: true + projectName: "" + dockerComposeFileArgs: | + TAG=${{ variables['Build.SourceBranchName'] }} + - task: DockerCompose@0 + displayName: Compose push apigws + inputs: + dockerComposeCommand: 'push ${{ parameters.images }}' + containerregistrytype: Container Registry + dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} + dockerComposeFile: docker-compose.yml + qualifyImageNames: true + projectName: "" + dockerComposeFileArgs: | + TAG=${{ variables['Build.SourceBranchName'] }} + - task: CopyFiles@2 + inputs: + sourceFolder: ${{ variables.Build.SourcesDirectory }}/k8s/helm + targetFolder: ${{ variables['Build.ArtifactStagingDirectory'] }}/k8s/helm + - task: PublishBuildArtifacts@1 + inputs: + pathtoPublish: ${{ variables['Build.ArtifactStagingDirectory'] }}/k8s/helm + artifactName: helm +- job: BuildWindows + condition: ne(${{ variables['Build.Reason'] }}, 'PullRequest')) + pool: + vmImage: 'windows-2019' + steps: + - task: DockerCompose@0 + displayName: Compose build apigws + inputs: + dockerComposeCommand: 'build mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw' + containerregistrytype: Container Registry + dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} + dockerComposeFile: docker-compose.yml + qualifyImageNames: true + projectName: "" + dockerComposeFileArgs: | + TAG=${{ variables['Build.SourceBranchName'] }} + PLATFORM=win + - task: DockerCompose@0 + displayName: Compose push apigws + inputs: + dockerComposeCommand: 'push mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw' + containerregistrytype: Container Registry + dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} + dockerComposeFile: docker-compose.yml + qualifyImageNames: true + projectName: "" + dockerComposeFileArgs: | + TAG=${{ variables['Build.SourceBranchName'] }} + PLATFORM=win diff --git a/build/azure-devops/multiarch.yaml b/build/azure-devops/multiarch.yaml index 919eb9595..bb8b46e56 100644 --- a/build/azure-devops/multiarch.yaml +++ b/build/azure-devops/multiarch.yaml @@ -5,6 +5,7 @@ parameters: jobs: - job: manifest + condition: ne(variables['Build.Reason'], 'PullRequest')) pool: vmImage: 'Ubuntu 16.04' steps: @@ -14,14 +15,16 @@ jobs: command: login containerregistrytype: 'Container Registry' dockerRegistryEndpoint: ${{ parameters.registryEndpoint }} - - bash: | - mkdir -p ~/.docker - echo '{ "experimental": "enabled" }' > ~/.docker/config.json - docker --config ~/.docker manifest create eshop/${{ parameters.image }}:${{ parameters.branch }} eshop/${{ parameters.image }}:linux-${{ parameters.branch }} eshop/${{ parameters.image }}:win-${{ parameters.branch }} - docker --config ~/.docker manifest create eshop/${{ parameters.image }}:latest eshop/${{ parameters.image }}:linux-latest eshop/${{ parameters.image }}:win-latest - docker --config ~/.docker push eshop/${{ parameters.image }}:${{ parameters.branch }} - docker --config ~/.docker push eshop/${{ parameters.image }}:latest - displayName: 'Create Manifest' + - task: Bash@3 + displayName: Create multiarch manifest + inputs: + script: | + mkdir -p ~/.docker + echo '{ "experimental": "enabled" }' > ~/.docker/config.json + docker --config ~/.docker manifest create eshop/${{ parameters.image }}:${{ parameters.branch }} eshop/${{ parameters.image }}:linux-${{ parameters.branch }} eshop/${{ parameters.image }}:win-${{ parameters.branch }} + docker --config ~/.docker manifest create eshop/${{ parameters.image }}:latest eshop/${{ parameters.image }}:linux-latest eshop/${{ parameters.image }}:win-latest + docker --config ~/.docker push eshop/${{ parameters.image }}:${{ parameters.branch }} + docker --config ~/.docker push eshop/${{ parameters.image }}:latest dependsOn: - BuildWindows - BuildLinux