91 lines
2.5 KiB
YAML
Executable File
91 lines
2.5 KiB
YAML
Executable File
# SPDX-FileCopyrightText: 2024-2025 Sarah Vaupel <sarah.vaupel@uniworx.de>
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
trigger:
|
|
branches:
|
|
include:
|
|
- '*'
|
|
paths:
|
|
exclude:
|
|
- CHANGELOG.md
|
|
tags:
|
|
include:
|
|
- '*'
|
|
|
|
parameters:
|
|
- name: services
|
|
type: object
|
|
default:
|
|
- name: frontend
|
|
imageBase:
|
|
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/
|
|
dependsOn: []
|
|
dependencyArtifacts: |
|
|
node_modules/
|
|
.npm/
|
|
buildPool: 'Prod Private Agent Pool'
|
|
buildTimeout: 60
|
|
buildArtifacts: |
|
|
assets/icons/fradrive/*.svg
|
|
assets/favicons/*.png
|
|
assets/favicons/include.html
|
|
frontend/src/env.sass
|
|
config/manifest.json
|
|
static/**/*
|
|
well-known/**/*
|
|
- name: backend
|
|
imageBase:
|
|
image: devfra.azurecr.io/de.fraport.build/haskell
|
|
tag: 8.10.4
|
|
dependsOn:
|
|
- frontend
|
|
dependencyArtifacts: |
|
|
.stack/**/*
|
|
buildPool: 'Prod Private Agent Pool DS3'
|
|
buildTimeout: 1440
|
|
buildArtifacts: |
|
|
bin/*
|
|
.stack-work/**/*
|
|
|
|
variables:
|
|
buildImageUpstream: 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]}} |