forked from HoussemDellai/WebAppWithDatabaseDemo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines-ci.yml
131 lines (109 loc) · 3.3 KB
/
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
trigger: 'none' # will disable CI builds entirely
jobs:
- job: WebApp
displayName: 'Build Web App'
pool:
name: Hosted VS2017
demands: java
variables:
BuildConfiguration: release
steps:
- task: DotNetCoreCLI@2
displayName: Restore
inputs:
command: restore
projects: '**/WebApp.csproj'
- powershell: |
Write-Host "Hello World"
$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'
- 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:
name: Hosted VS2017
demands: msbuild
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:
name: Hosted VS2017
demands: msbuild
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:
name: Hosted VS2017
steps:
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: ARM templates'
inputs:
PathtoPublish: AzureResourceGroupDeployment
ArtifactName: arm