fradrive/azure-pipelines.yaml

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]}}