From ba7b2de4cf02780f6abdde1ea3fcac485b84a138 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Thu, 6 Feb 2025 17:35:18 +0100 Subject: [PATCH] ci(azure-pipelines): restructure pipeline workflow - build images [skip ci] --- .../templates/jobs/setup_image.yaml | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .azure-pipelines/templates/jobs/setup_image.yaml diff --git a/.azure-pipelines/templates/jobs/setup_image.yaml b/.azure-pipelines/templates/jobs/setup_image.yaml new file mode 100644 index 000000000..a4351ce13 --- /dev/null +++ b/.azure-pipelines/templates/jobs/setup_image.yaml @@ -0,0 +1,60 @@ +# SPDX-FileCopyrightText: 2024-2025 Sarah Vaupel +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +parameters: + - name: imageName + type: string + - name: imageBase + type: object + +jobs: +- job: SetupImage_${{parameters.imageName}} + displayName: Build ${{parameters.imageName}} image + condition: or(eq(variables.forcePushLatest, true), eq(variables.onMasterBranch, true), eq(variables.onUpdateBranch, true)) + container: + image: devfra.azurecr.io/de.fraport.build/tools:1.1.0 + endpoint: devfra + steps: + - task: Docker@2 + displayName: Login to container registry + inputs: + command: login + containerRegistry: devfra + - task: Bash@3 + displayName: Build ${{parameters.imageName}} image + inputs: + targetType: inline + script: | + cp docker/${{parameters.imageName}}/Dockerfile . + docker build \ + --tag $(buildImageUpstream)/${{parameters.imageName}}:$(Build.BuildNumber) \ + --build-arg FROM_IMG=${{parameters.imageBase.image}} \ + --build-arg FROM_TAG=${{parameters.imageBase.tag}} \ + --build-arg HTTPS_PROXY=http://proxy.frankfurt-airport.de:8080 \ + --build-arg HTTP_PROXY=http://proxy.frankfurt-airport.de:8080 \ + --build-arg NO_PROXY='localhost,127.0.0.1,*.docker.internal,*.azmk8s.io,devfra.azurecr.io,devfra.westeurope.data.azurecr.io' \ + --build-arg FRAPORT_NOPROXY=dev.azure.com,*.dev.azure.com,*.fraport.de,*.frankfurt-airport.de \ + --build-arg PROJECT_DIR=$(Build.Repository.LocalPath) \ + --build-arg IN_CI=true \ + --build-arg IN_CONTAINER=true \ + . + - task: Bash@3 + displayName: Push ${{parameters.imageName}} image + inputs: + targetType: inline + script: | + docker push $(buildImageUpstream)/${{parameters.imageName}}:$(Build.BuildNumber) + - task: Bash@3 + displayName: Update latest ${{parameters.imageName}} image + condition: or(eq(variables.forcePushLatest, true), eq(variables.onMasterBranch, true)) + inputs: + targetType: inline + script: | + docker tag $(buildImageUpstream)/${{parameters.imageName}}:$(Build.BuildNumber) $(buildImageUpstream)/${{parameters.imageName}}:latest + docker push $(buildImageUpstream)/${{parameters.imageName}}:latest + - task: Docker@2 + displayName: Logout from container registry + inputs: + command: logout + containerRegistry: devfra \ No newline at end of file