This repository has been archived on 2026-07-27. You can view files and clone it, but cannot push or open issues or pull requests.
fradrive-old/.azure-pipelines/templates/jobs/setup_dependencies.yaml

97 lines
3.5 KiB
YAML

# SPDX-FileCopyrightText: 2024-2025 Sarah Vaupel <sarah.vaupel@uniworx.de>
#
# SPDX-License-Identifier: AGPL-3.0-or-later
parameters:
- name: serviceName
type: string
# - name: dependenciesArtifacts
# type: string
- name: dependenciesCaches
type: object
default: []
- name: dependenciesBuildPool
type: string
default: 'Prod Private Agent Pool'
values:
- 'Prod Private Agent Pool'
- 'Prod Private Agent Pool DS2'
- 'Prod Private Agent Pool DS3'
- name: dependenciesBuildTimeout
type: number
default: 60
# - name: dependenciesSource
# type: string
# default: 'current'
# values:
# - 'current'
# - 'specific'
# - name: dependenciesVersion
# type: string
# default: 'latest'
# values:
# - 'latest'
# - 'latestFromBranch'
jobs:
- job: SetupDependencies_${{parameters.serviceName}}
displayName: Install ${{parameters.serviceName}} dependencies
dependsOn: SetupImage_${{parameters.serviceName}}
${{ if eq(variables.setupImages, true) }}:
condition: succeeded()
${{ else }}:
condition: always()
pool: '${{parameters.dependenciesBuildPool}}'
timeoutInMinutes: ${{parameters.dependenciesBuildTimeout}}
container:
# TODO: do not use latest on update branches
image: $(buildImageUpstream)/${{parameters.serviceName}}:latest
endpoint: devfra
env:
PROJECT_DIR: $(Build.Repository.LocalPath)
IN_CONTAINER: true
IN_CI: true
steps:
# Restore previously-built dependencies from caches
- ${{ each cache in parameters.dependenciesCaches }}:
- task: Cache@2
displayName: Restore cached ${{parameters.serviceName}} dependencies
inputs:
key: '"${{parameters.serviceName}}-dependencies" | ${{cache.key}}'
path: '${{cache.path}}'
# - task: DownloadPipelineArtifact@2
# displayName: Download previously built ${{parameters.serviceName}} dependencies
# condition: eq(variables.useCachedDependencies, true)
# continueOnError: true
# inputs:
# artifactName: '${{parameters.serviceName}}-dependencies'
# source: ${{parameters.dependenciesSource}}
# project: 'Fahrerausbildung' # TODO: hardcoded for now, could not figure out which predefined variable to use
# pipeline: $(System.DefinitionId)
# buildVersionToDownload: '${{parameters.dependenciesVersion}}'
# # tags: '${{dependenciesArtifacts}}'
# allowPartiallySucceededBuilds: true
# allowFailedBuilds: true
# patterns: '${{parameters.dependenciesArtifacts}}'
# targetPath: '$(Build.Repository.LocalPath)'
# Compile dependencies
- template: ./../../steps/make.yaml
parameters:
makeJob: dependencies
makeService: ${{parameters.serviceName}}
# (Note: a post-job for updating the dependency cache is automatically created, so no further step is due here.)
# Upload newly-built dependencies as artifacts
# - task: CopyFiles@2
# displayName: Copy ${{parameters.serviceName}} dependencies for upload
# inputs:
# Contents: '${{parameters.dependenciesArtifacts}}'
# TargetFolder: '$(Build.ArtifactStagingDirectory)'
# - task: PublishBuildArtifacts@1
# displayName: Upload ${{parameters.serviceName}} dependencies as artifacts
# inputs:
# PathtoPublish: '$(Build.ArtifactStagingDirectory)'
# ArtifactName: '${{parameters.serviceName}}-dependencies'
# publishLocation: 'Container'