1+ # ## INFRASTRUCTURE Continuous Deployment
2+ # ##
3+ # ## This pipeline will run:
4+ # ## - on PR on master within Deploy/IaC (Terraform configuration), but will only deploy infrastructure changes to Stage
5+ # ## - on CI on master within Deploy/IaC (Terraform configuration), will reapply infrastructure changes to Stage and then on Prod
6+ # ##
7+ # ## To introduce manual intervention before deploying to Stage and or Prod environment see here:
8+ # ## https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops&tabs=check-pass
9+ # ##
10+ # ## Following Variable Groups have to be in place:
11+ # ##
12+ # ## SubscriptionDetails:
13+ # ## - ServicePrincipalID (Client/App ID)
14+ # ## - ServicePrincipalSecret (Client Secret)
15+ # ## - TenantId (AAD Id)
16+ # ## - SubscriptionId (Azure Subscription)
17+ # ##
18+ # ## StateStoreStage & StateStoreProd:
19+ # ## - TFStateRG (Resource Group for Terraform state)
20+ # ## - TFStateStA (Terraform state store storage account)
21+ # ## - TFStateLoc (Terraform state store storage account and resource group location)
22+ # ##
23+ # ## BotConfigStage & BotConfigProd:
24+ # ## - BotName (Name of the Bot)
25+ # ## - Domain (Custom Domain name for the Bot)
26+ # ## - BotRegions (Azure Regions for the Bot PowerShell Array format)
27+ # ## - BotGlobalLocation (Azure Regions for global resources)
28+ # ## - PFXImportPassword (PFX file import password for SSL Bot Certificate)
29+ # ##
30+ # ## Following Secure Files have to be in place:
31+ # ##
32+ # ## - sslcertstage.pfx (SSL for domain used in Staging)
33+ # ## - sslcert.pfx (SSL for domain used in Production)
34+ # ##
35+ # ## ### ### ### ### ### ### ### ### ### ### ### ### ### ###
36+ resources :
37+ containers :
38+ - container : geobotagent
39+ image : h2floh/geobotagent
40+
41+ # CI trigger
42+ trigger :
43+ branches :
44+ include :
45+ - master
46+ paths :
47+ include :
48+ - Deploy/IaC
49+
50+ # PR builds
51+ pr :
52+ branches :
53+ include :
54+ - master
55+ paths :
56+ include :
57+ - Deploy/IaC
58+
59+ stages :
60+ - template : stages/iac.yaml # Template reference
61+ parameters :
62+ environment : Stage
63+ sslfilename : ' sslcertstage.pfx'
64+
65+ - template : stages/iac.yaml # Template reference
66+ parameters :
67+ environment : Prod
68+ sslfilename : ' sslcert.pfx'
0 commit comments