-
Notifications
You must be signed in to change notification settings - Fork 1
/
azure-pipelines.yml
112 lines (99 loc) · 2.8 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
# # # # # # # # # # # # # # # # # # # # # # # # # #
#
# Content: build dib
# Author: Jan Jambor, XWare GmbH
# Author URI: https://xwr.ch
#
# # # # # # # # # # # # # # # # # # # # # # # # # #
parameters:
- name: stage
displayName: Stage
type: string
default: Build
values:
- Build
- Deploy
trigger:
- main
resources:
repositories:
- repository: ci-central
name: JJsProjects/CiCentral
type: git
ref: main
variables:
- name: dockerRegistryServiceConnection
value: 'jjscontainers'
- name: imageRepository
value: 'dib'
- name: containerRegistry
value: 'jjscontainers.azurecr.io'
- name: dockerfilePath
value: '$(Build.SourcesDirectory)/src/DorfInfoBot.API/Dockerfile'
- name: tag
value: '$(Build.BuildId)'
pool:
name: jjspool
demands:
- Agent.OS -equals Linux
stages:
- stage: Build
displayName: Build a new Docker image
condition: eq('${{ parameters.stage }}', 'Build')
jobs:
- job: Build
displayName: Build a new Docker image
steps:
- template: ci-templates/sonarqube/sonarqube-prepare.yaml@ci-central
parameters:
scannerMode: 'MSBuild'
cliProjectKey: 'JJsProjects_dib_AYsGgaa-1-YL2-_6dJ0F'
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/*.csproj'
arguments: '-r linux-x64'
includeNuGetOrg: true
env:
DOTNET_CLI_HOME: '$(Pipeline.Workspace)/.dotnet'
- task: DotNetCoreCLI@2
displayName: Build
inputs:
command: build
projects: '**/*.csproj'
arguments: '-c release -o out -r linux-x64 --self-contained true --no-restore'
env:
DOTNET_CLI_HOME: '$(Pipeline.Workspace)/.dotnet'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifacts'
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/out'
ArtifactName: 'drop'
publishLocation: 'Container'
- template: ci-templates/sonarqube/sonarqube-analyze-publish.yaml@ci-central
- task: DownloadBuildArtifacts@0
displayName: 'Download Artifacts'
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(Pipeline.Workspace)'
- task: Docker@2
displayName: Build an image
inputs:
command: build
repository: $(imageRepository)
containerRegistry: $(dockerRegistryServiceConnection)
dockerfile: $(dockerfilePath)
tags: $(tag)
arguments: '--build-arg BUILD_TAG=$(tag)'
buildContext: '$(Pipeline.Workspace)/drop'
- task: Docker@2
displayName: Push an image to container registry
inputs:
command: push
repository: $(imageRepository)
containerRegistry: $(dockerRegistryServiceConnection)
tags: $(tag)