-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathazure-pipelines-deploy-iis.yml
89 lines (85 loc) · 3.14 KB
/
azure-pipelines-deploy-iis.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
parameters:
- name: websiteName
type: string
- name: dropName
type: string
- name: dropFolder
type: string
- name: environment
type: string
- name: stageName
type: string
- name: deploymentPath
type: string
- name: variableGroup
type: string
jobs:
- deployment: 'prepare${{ parameters.environment }}'
displayName: 'Create and deploy to machines on ${{ parameters.environment }}'
environment:
name: ${{ parameters.environment }}
resourceType: VirtualMachine
variables:
- group: ${{ parameters.variableGroup }}
- name: physicalPath
value: '${{ parameters.deploymentPath }}\${{ parameters.websiteName }}'
strategy:
runOnce:
deploy:
steps:
- checkout: none
- download: current
artifact: ${{ parameters.dropName }}
displayName: Download website artifact
- task: FileTransform@2
displayName: Transform web.config
inputs:
folderPath: '${{ parameters.dropFolder }}'
xmlTransformationRules: '-transform **\*.${{ parameters.stageName }}.config -xml **\*.config'
jsonTargetFiles: '**\appsettings.${{ parameters.stageName }}.json'
- task: IISWebAppManagementOnMachineGroup@0
displayName: 'Create or update IIS website'
inputs:
IISDeploymentType: 'IISWebsite'
ActionIISWebsite: 'CreateOrUpdateWebsite'
WebsiteName: '${{ parameters.websiteName }}'
WebsitePhysicalPath: '$(physicalPath)'
WebsitePhysicalPathAuth: 'WebsiteUserPassThrough'
CreateOrUpdateAppPoolForWebsite: true
AppPoolNameForWebsite: '${{ parameters.websiteName }}'
DotNetVersionForWebsite: 'No Managed Code'
PipeLineModeForWebsite: 'Integrated'
AppPoolIdentityForWebsite: 'ApplicationPoolIdentity'
AddBinding: true
Bindings: |
{
bindings:[
{
"protocol":"http",
"ipAddress":"",
"hostname":"$(HostName)",
"port":"80",
"sslThumbprint":"",
"sniFlag":false
}
]
}
- task: IISWebAppManagementOnMachineGroup@0
displayName: 'Stop application pool'
inputs:
IISDeploymentType: 'IISApplicationPool'
ActionIISApplicationPool: 'StopAppPool'
StartStopRecycleAppPoolName: '${{ parameters.websiteName }}'
- task: IISWebAppDeploymentOnMachineGroup@0
displayName: 'Deploy to IIS'
inputs:
WebsiteName: '${{ parameters.websiteName }}'
Package: '${{ parameters.dropFolder }}'
takeAppOfflineFlag: true
RemoveAdditionalFilesFlag: true
- task: IISWebAppManagementOnMachineGroup@0
displayName: 'Start application pool'
inputs:
IISDeploymentType: 'IISApplicationPool'
ActionIISApplicationPool: 'StartAppPool'
StartStopRecycleAppPoolName: '${{ parameters.websiteName }}'