Skip to content

Instantly share code, notes, and snippets.

@Damovisa
Created March 5, 2021 04:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Damovisa/de8ecdfd0fe9415c42018fcf686f212c to your computer and use it in GitHub Desktop.
Save Damovisa/de8ecdfd0fe9415c42018fcf686f212c to your computer and use it in GitHub Desktop.
Azure Pipelines example
# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4
trigger:
branches:
include:
- master
paths:
exclude:
- .github
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
stages:
- stage: Build
jobs:
- job: BuildApplication
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: VSTest@2
inputs:
testSelector: 'testAssemblies'
testAssemblyVer2: |
**\*tests.dll
!**\*TestAdapter.dll
!**\obj\**
searchFolder: '$(System.DefaultWorkingDirectory)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
- task: CopyFiles@2
inputs:
SourceFolder: '$(build.artifactStagingDirectory)'
Contents: '**/MercuryHealth.Web.zip'
TargetFolder: '$(build.artifactStagingDirectory)/artifacts'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: '**/*.dacpac'
flattenFolders: true
TargetFolder: '$(build.artifactStagingDirectory)/artifacts'
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactStagingDirectory)/artifacts'
artifact: 'artifacts'
publishLocation: 'pipeline'
- stage: DeployToTest
dependsOn: Build
variables:
- group: TestVariables
jobs:
- deployment: DeployTestApplication
environment: MercuryWeb-Test.OnPremServer
strategy:
runOnce:
deploy:
steps:
- task: IISWebAppDeploymentOnMachineGroup@0
inputs:
WebSiteName: '$(websiteName)'
Package: '$(Pipeline.Workspace)\**\*.zip'
- task: SqlDacpacDeploymentOnMachineGroup@0
inputs:
TaskType: 'dacpac'
DacpacFile: '$(Pipeline.Workspace)\**\*.dacpac'
TargetMethod: 'server'
ServerName: 'localhost'
DatabaseName: '$(databaseName)'
AuthScheme: 'windowsAuthentication'
- stage: DeployToProd
dependsOn: DeployToTest
variables:
- group: ProductionVariables
jobs:
- deployment: DeployProdApplication
environment: MercuryWeb-Prod.OnPremServerProd
strategy:
runOnce:
deploy:
steps:
- task: IISWebAppDeploymentOnMachineGroup@0
inputs:
WebSiteName: '$(websiteName)'
Package: '$(Pipeline.Workspace)\**\*.zip'
- task: SqlDacpacDeploymentOnMachineGroup@0
inputs:
TaskType: 'dacpac'
DacpacFile: '$(Pipeline.Workspace)\**\*.dacpac'
TargetMethod: 'server'
ServerName: 'localhost'
DatabaseName: '$(databaseName)'
AuthScheme: 'windowsAuthentication'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment