Skip to content

Commit

Permalink
dotnet Core deploy & example
Browse files Browse the repository at this point in the history
Added example for dotnet core apps with azure web apps
  • Loading branch information
wesleycamargo authored Jul 25, 2022
1 parent 2a2079d commit 96a8ad6
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 34 deletions.
76 changes: 55 additions & 21 deletions src/cloud/azure/appService/appService-deploy-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ jobs:

- ${{ if and(eq(parameters.settings.deploy.infrastructure.enabled, 'true'), eq(parameters.resource.deploy.infrastructure.enabled, 'true')) }}:

- deployment: ${{ replace(parameters.resource.runName,'-','') }}iac
# - deployment: ${{ replace(parameters.resource.name,'-','') }}iac
- deployment: ${{ parameters.resource.name }}iac
displayName: IaC - Azure App Service Deployment
environment: ${{ parameters.environment }}
dependsOn: resourceGroupDeploy
Expand All @@ -29,30 +30,63 @@ jobs:
templateLocation: 'Linked artifact'
csmFile: '$(Pipeline.Workspace)/${{ parameters.resource.name }}/infrastructure/appService.json'
overrideParameters: >
-servicePlanName ${{ parameters.resource.deploy.infrastructure.servicePlanName }}
-siteName ${{ parameters.resource.name }}
-servicePlanName ${{ parameters.resource.deploy.infrastructure.servicePlanName }}
-siteName ${{ parameters.resource.deploy.infrastructure.appServiceName }}
deploymentMode: 'Incremental'
deploymentOutputs: 'ArmOutputs'

# - ${{ if and(eq(parameters.settings.deploy.application.enabled, 'true'),eq(parameters.resource.deploy.application.enabled, 'true')) }}:
# - deployment:
# displayName: App - Azure App Service Deployment
# environment: ${{ parameters.environment }}
# ${{ if and(eq(parameters.settings.deploy.infrastructure.enabled, 'true'), eq(parameters.resource.deploy.infrastructure.enabled, 'true')) }}:
# dependsOn: ${{ replace(parameters.resource.runName,'-','') }}iac
# ${{ else }}:
# dependsOn: resourceGroupDeploy
# strategy:
# runOnce:
# deploy:
# steps:
- ${{ if and(eq(parameters.settings.deploy.application.enabled, 'true'),eq(parameters.resource.deploy.application.enabled, 'true')) }}:
- deployment:
displayName: App - Azure App Service Deployment
environment: ${{ parameters.environment }}
${{ if and(eq(parameters.settings.deploy.infrastructure.enabled, 'true'), eq(parameters.resource.deploy.infrastructure.enabled, 'true')) }}:
dependsOn: ${{ parameters.resource.name }}iac
${{ else }}:
dependsOn: resourceGroupDeploy
strategy:
runOnce:
deploy:
steps:

- powershell: |
$timeoutMinutes = 2
$timeout = New-TimeSpan -Minutes $timeoutMinutes
$endTime = (Get-Date).Add($timeout)
# - ${{ if ne( parameters.resource.type, 'appService') }}:
# - task: AzureWebApp@1
# inputs:
# azureSubscription: ${{ parameters.settings.azure.subscription.serviceConnection }}
# appName: ${{ parameters.resource.name }}
# package: $(Pipeline.Workspace)/${{ parameters.resource.runName }}/**/*.zip
do {
Start-Sleep -Seconds 10
Write-Host "##[command]Checking if App Service is available..." -ForegroundColor Blue
$statusCode = $null
try {
$uri = "https://${{ parameters.resource.deploy.infrastructure.appServiceName }}.azurewebsites.net"
$req = Invoke-WebRequest -Uri $uri
if($null -ne $req.StatusCode){
$statusCode = $req.StatusCode
}
Write-Output "Status Code -- $statusCode"
} catch {}
$timeoutReached = ((Get-Date) -gt $endTime)
if ($timeoutReached) {
Write-Warning "Timeout reached"
return $false
}
} until ($statusCode -eq 200 -or $timeoutReached)
displayName: Waiting web app availability
# - ${{ if ne( parameters.resource.type, 'appService') }}:
- task: AzureWebApp@1
inputs:
azureSubscription: ${{ parameters.settings.azure.subscription.serviceConnection }}
appName: ${{ parameters.resource.deploy.infrastructure.appServiceName }}
package: $(Pipeline.Workspace)/${{ parameters.resource.name }}/**/*.zip

# - deployment:
# displayName: Azure App Service Deployment
Expand Down
3 changes: 2 additions & 1 deletion src/cloud/azure/appService/examples/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,13 @@ extends:
# - uat
# - prd
resources:
- name: example-appService-iac
- name: exampleAppService
type: appService
enabled: true
deploy:
infrastructure:
enabled: true
servicePlanName: $(servicePlanName)
appServiceName: $(appServiceName)
application:
enabled: false
5 changes: 2 additions & 3 deletions src/development/dotnetCore/dotnetCore-build-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:


- job:
displayName: App - ${{ parameters.resource.runName }} Build Job
displayName: App - ${{ parameters.resource.name }} Build Job
variables:
BuildPlatform: 'Any CPU'
BuildConfiguration: 'Release'
Expand Down Expand Up @@ -53,10 +53,9 @@ jobs:
- template: ../../cloud/azure/bicep/bicep-build-tasks.yml
parameters:
resourceType: appService
# resource: ${{ parameters.resource }}

- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactstagingdirectory)'
artifact: ${{ parameters.resource.runName }}
artifact: ${{ parameters.resource.name }}
publishLocation: 'pipeline'
11 changes: 5 additions & 6 deletions src/development/dotnetCore/examples/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ resources:
type: github
endpoint: devopsnights
name: devopsnights/AzureDevOpsReleaseEngine
ref: refs/heads/feature/appService
ref: refs/heads/feature/dotnetCore

trigger:
branches:
Expand All @@ -15,10 +15,9 @@ trigger:
include:
- src/development/dotnetCore/*


pool:
# vmImage: 'windows-latest'
name: default
vmImage: 'windows-latest'
# name: default

extends:
template: /src/main.yml@releaseEngine
Expand Down Expand Up @@ -46,14 +45,14 @@ extends:
- uat
- prd
resources:
- name: $(applicationName)
- name: exampleDotnetCore
type: dotnetCore
runName: app-releaseengine
enabled: true
deploy:
type: azureWebApp
infrastructure:
enabled: true
servicePlanName: $(servicePlanName)
appServiceName: $(appServiceName)
application:
enabled: true
2 changes: 1 addition & 1 deletion src/development/dotnetCore/examples/variables/dev-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ variables:
resourceGroupName: rg-dotnetcore-releaseengine-dev

servicePlanName: plan-dotnetcore-releaseengine-dev
applicationName: app-dotnetcore-releaseengine-dev
appServiceName: app-dotnetcore-releaseengine-dev

2 changes: 1 addition & 1 deletion src/development/dotnetCore/examples/variables/prd-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ variables:
resourceGroupName: rg-dotnetcore-releaseengine-prd

servicePlanName: plan-dotnetcore-releaseengine-prd
applicationName: app-dotnetcore-releaseengine-prd
appServiceName: app-dotnetcore-releaseengine-prd
2 changes: 1 addition & 1 deletion src/development/dotnetCore/examples/variables/uat-vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ variables:
resourceGroupName: rg-dotnetcore-releaseengine-uat

servicePlanName: plan-dotnetcore-releaseengine-uat
applicationName: app-dotnetcore-releaseengine-uat
appServiceName: app-dotnetcore-releaseengine-uat

0 comments on commit 96a8ad6

Please sign in to comment.