90 lines
2.7 KiB
YAML
Executable File
90 lines
2.7 KiB
YAML
Executable File
# SPDX-FileCopyrightText: 2024-2025 Sarah Vaupel <sarah.vaupel@uniworx.de>
|
|
#
|
|
# 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] |