-
Notifications
You must be signed in to change notification settings - Fork 0
/
02_azure-pipelines-ci.yml
135 lines (112 loc) · 3.41 KB
/
02_azure-pipelines-ci.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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
trigger: 'none' # will disable CI builds entirely
jobs:
- job: WebApp
displayName: 'Build Web App'
pool:
vmImage: 'windows-2019'
variables:
BuildConfiguration: release
steps:
- task: UseDotNet@2
displayName: Install .NET 6 sdk
inputs:
packageType: sdk
version: 6.0.x
installationPath: $(Agent.ToolsDirectory)/dotnet
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/WebApp.csproj'
- powershell: |
$paths = Get-ChildItem -include *.csproj -Recurse
foreach($pathobject in $paths)
{
$path = $pathobject.fullname
$doc = New-Object System.Xml.XmlDocument
$doc.Load($path)
$child = $doc.CreateElement("ProjectGuid")
$child.InnerText = [guid]::NewGuid().ToString().ToUpper()
$node = $doc.SelectSingleNode("//Project/PropertyGroup")
$node.AppendChild($child)
$doc.Save($path)
}
workingDirectory: WebApp
displayName: 'PS : Add Project GUID'
enabled: false
- task: SonarCloudPrepare@1
displayName: 'Prepare analysis on SonarCloud'
inputs:
SonarCloud: SonarCloud
organization: houssemdellai
projectKey: WebAppWithDatabaseDemo
- task: DotNetCoreCLI@2
displayName: Build
inputs:
projects: '**/WebApp.csproj'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Test
inputs:
command: test
projects: '**/*UnitTest*.csproj'
arguments: '--configuration $(BuildConfiguration)'
- task: DotNetCoreCLI@2
displayName: Publish
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
zipAfterPublish: True
- task: SonarCloudAnalyze@1
displayName: 'Run Code Analysis'
- task: SonarCloudPublish@1
displayName: 'Publish Quality Gate Result'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact (WebApp.zip)'
inputs:
PathtoPublish: '$(build.artifactstagingdirectory)'
- job: Database
displayName: 'Build Database'
pool:
vmImage: 'windows-2019'
steps:
- task: MSBuild@1
displayName: 'Build solution WebApp.Database.sqlproj'
inputs:
solution: WebApp.Database/WebApp.Database.sqlproj
msbuildArguments: '/p:OutDir=$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact (Dacpac)'
inputs:
ArtifactName: dacpac
- job: Selenium
displayName: 'Build UI Tests'
pool:
vmImage: 'windows-2019'
steps:
- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.3.0'
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: WebAppWithDatabase.sln
- task: MSBuild@1
displayName: 'Build project SeleniumUiTests.csproj'
inputs:
solution: SeleniumUiTests/SeleniumUiTests.csproj
msbuildArguments: '/p:OutDir=$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: UI-Test'
inputs:
ArtifactName: 'UI-Test'
- job: Infrastructure
displayName: 'Copy Infrastructure files (ARM)'
pool:
vmImage: 'ubuntu-latest'
steps:
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: ARM templates'
inputs:
PathtoPublish: AzureResourceGroupDeployment
ArtifactName: arm