# SPDX-FileCopyrightText: 2024-2025 Sarah Vaupel # # SPDX-License-Identifier: AGPL-3.0-or-later parameters: - name: services type: object default: - name: frontend base: image: devfra.azurecr.io/de.fraport.build/npm tag: node-20 # extraBuildOptions: | # --build-arg NPM_CUSTOM_REGISTRY=https://pkgs.dev.azure.com/fraport/_packaging/packages/npm/registry/ pool: 'Prod Private Agent Pool' timeout: 60 dependsOn: [] requiredArtifacts: [] artifacts: | assets/icons/fradrive/*.svg assets/favicons/*.png assets/favicons/include.html static/**/* well-known/**/* frontend/src/env.sass config/manifest.json - name: backend base: image: devfra.azurecr.io/de.fraport.build/haskell tag: 8.10.4 pool: 'Prod Private Agent Pool DS3' timeout: 1440 dependsOn: - frontend requiredArtifacts: - name: frontend source: current version: 'latest' artifact: frontend patterns: '**/*' continueOnError: false - name: backend-dependencies source: specific version: 'latestFromBranch' artifact: backend patterns: '.stack/**/*' continueOnError: true condition: eq(variables.useCachedDependencies, true) artifacts: | bin/* .stack/**/* variables: imageUpstream: devfra.azurecr.io/de.fraport.fradrive.build onMasterBranch: $[eq(variables['Build.SourceBranch'], 'refs/heads/master')] onUpdateBranch: $[startsWith(variables['Build.SourceBranch'], 'refs/heads/update')] pool: 'Prod Private Agent Pool' stages: - ${{ each service in parameters.services }}: - template: .azure-pipelines/templates/service.yaml parameters: serviceName: ${{ service.name }} serviceBase: ${{ service.base }} servicePool: ${{ service.pool }} serviceTimeout: ${{ service.timeout }} serviceDependsOn: ${{ service.dependsOn }} serviceRequiredArtifacts: ${{ service.requiredArtifacts }} serviceArtifacts: ${{ service.artifacts }} ${{ if eq(variables.skipTests, false) }}: buildSteps: - dependencies - compile - lint - test ${{ else }}: buildSteps: - dependencies - compile - stage: release condition: or(eq(variables.forceRelease, true), startsWith(variables['Build.SourceBranch'], 'refs/tags/')) dependsOn: - backend jobs: - template: .azure-pipelines/templates/release.yaml parameters: releaseTag: split(variables['Build.SourceBranch'], '/')[2]