# SPDX-FileCopyrightText: 2024-2025 Sarah Vaupel # # SPDX-License-Identifier: AGPL-3.0-or-later pool: 'Prod Private Agent Pool' jobs: - job: BuildFrontendImage container: image: devfra.azurecr.io/de.fraport.build/tools:1.1.0 endpoint: devfra steps: - checkout: self - task: Docker@2 name: dockerLoginDevFra displayName: Docker Login to devfra inputs: command: login containerRegistry: devFra - task: Bash@3 displayName: Build frontend image inputs: targetType: inline script: | cp docker/frontend/Dockerfile . docker build \ --build-arg FROM_IMG=devfra.azurecr.io/de.fraport.build/npm \ --build-arg FROM_TAG=node-20 \ --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 MOUNT_DIR=$(Build.Repository.LocalPath) \ --build-arg PROJECT_DIR=/fradrive \ --tag devfra.azurecr.io/de.fraport.fradrive.build/frontend:$(Build.BuildNumber) \ . - task: Bash@3 displayName: Push frontend image inputs: targetType: inline script: | docker push devfra.azurecr.io/de.fraport.fradrive.build/frontend:$(Build.BuildNumber) - task: Docker@2 name: dockerLogoutDevFra displayName: Docker Logout from devfra inputs: command: logout containerRegistry: devFra - job: BuildBackendImage pool: 'Prod Private Agent Pool DS2' container: image: devfra.azurecr.io/de.fraport.build/tools:1.1.0 endpoint: devfra steps: - checkout: self - task: Docker@2 name: dockerLoginDevFra displayName: Docker Login to devfra inputs: command: login containerRegistry: devFra - task: Bash@3 displayName: Build backend image inputs: targetType: inline script: | cp docker/backend/Dockerfile . docker build \ --build-arg FROM_IMG=devfra.azurecr.io/de.fraport.build/haskell \ --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 MOUNT_DIR=$(Build.Repository.LocalPath) \ --build-arg PROJECT_DIR=/fradrive \ --tag backend:$(Build.BuildNumber) \ . - task: Docker@2 name: dockerLogoutDevFra displayName: Docker Logout from devfra inputs: command: logout containerRegistry: devFra - job: CompileFrontend dependsOn: BuildFrontendImage condition: succeeded() container: image: devfra.azurecr.io/de.fraport.build/npm:node-20 endpoint: devfra steps: - checkout: self - task: Npm@1 name: frontendInstall displayName: Install node_modules inputs: command: 'install' workingDir: '$(Build.Repository.LocalPath)' verbose: true - task: Npm@1 name: frontendBuild displayName: Build frontend resources inputs: command: 'custom' customCommand: 'build' workingDir: '$(Build.Repository.LocalPath)' - task: Bash@3 name: debugPrints inputs: targetType: inline script: | ls -a . ls -a $(Build.Repository.LocalPath) - task: Bash@3 name: compileFrontend displayName: Compile frontend inputs: targetType: inline script: | make -- --compile-frontend IN_CONTAINER=true - task: Bash@3 name: testFrontend displayName: Test frontend inputs: targetType: inline script: | make -- --lint-frontend IN_CONTAINER=true make -- --test-frontend IN_CONTAINER=true - task: CopyFiles@2 name: CopyFrontendArtifacts displayName: Prepare frontend artifacts inputs: Contents: | static/ well-known/ frontend/src/env.sass config/manifest.json TargetFolder: '$(Build.ArtifactStagingDirectory)' - task: PublishBuildArtifacts@1 name: PublishFrontendArtifacts displayName: Publish frontend artifacts inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'frontend' publishLocation: 'Container'