Untitled

 avatar
unknown
yaml
2 years ago
4.0 kB
6
Indexable
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yam1
trigger: 
  - none

variables:
  pipelineImageName: 'ubuntu-latest'
  serviceConnectionName: 'Workflow-DevTest'
  infrastructureSourcesFolderPath: 'Infrastructure'
  infrastructureTemplateFilePath: '$(infrastructureSourcesFolderPath)/TODO'
  infrastructureTemplateParametersFilePath: '$(infrastructureSourcesFolderPath)/TODO'
  subscriptionId: '1fedd5f0-38e0-48c7-9dca-f895752682a9'
  location: 'eastus2'
  resourceGroup: 'wf-cd-3'
  bkstrgrg: 'resource_group_name'
  bkstrg: 'storage_account_name'
  bkcontainer: 'container_name'
  bkstrgkey: 'filename.key.name ex: testpipeline.terraform.tfstate'
pool:
  vmImage: $(pipelineImageName)  # Specify the VM image at the pipeline level

stages:
- stage: DotnetBuildTestPublish
  jobs:
  - job: BuildTestPublish
    steps:
    - task: DotNetCoreCLI@2
      displayName: DotNet Restore
      condition: succeeded() # Runs only if the previous stages/jobs succeeded
      inputs:
        command: 'restore'
        projects: '**/*.csproj'
        feedsToUse: 'select'
    - task: DotNetCoreCLI@2
      displayName: DotNet Build
      condition: succeeded('BuildTestPublish.DotNet Restore') # Runs only if DotNet Restore succeeded
      inputs:
        command: 'build'
        projects: '**/*.csproj'
        arguments: '--configuration $(buildConfiguration)'
    - task: DotNetCoreCLI@2
      displayName: DotNet Test
      condition: succeeded('BuildTestPublish.DotNet Build') # Runs only if DotNet Build succeeded
      inputs:
        command: 'test'
        projects: '**/*Tests.csproj'
        arguments: '--configuration $(buildConfiguration)'
    - task: DotNetCoreCLI@2
      displayName: DotNet Publish
      condition: succeeded('BuildTestPublish.DotNet Test') # Runs only if DotNet Test succeeded
      inputs:
        command: 'publish'
        publishWebProjects: true
        zipAfterPublish: true
        arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'

- stage: tfvalidate
  jobs:
  - job: validate
    continueOnError: false
    steps:
    - task: TerraformInstaller@0
      displayName: tfinstall
      inputs:
        terraformVersion: 'latest'
    - task: TerraformTaskV3@3
      displayName: init
      inputs:
        provider: 'azurerm'
        command: 'init'
        backendServiceArm: 'DevTestServiceConnection'
        backendAzureRmResourceGroupName: '$(bkstrgrg)'
        backendAzureRmStorageAccountName: '$(bkstrg)'
        backendAzureRmContainerName: '$(bkcontainer)'
        backendAzureRmKey: '$(bkstrgkey)'
    - task: TerraformTaskV3@3
      displayName: validate
      inputs:
        provider: 'azurerm'
        command: 'validate'

- stage: tfdeploy
  condition: succeeded('tfvalidate')
  dependsOn: tfvalidate
  jobs:
  - job: apply
    steps:
    - task: TerraformInstaller@8
      displayName: tfinstall
      inputs:
        terraformVersion: 'latest'
    - task: TerraformTaskV3@3
      displayName: init
      inputs:
        provider: 'azurerm'
        command: 'init'
        backendServiceArm: 'DevTestServiceConnection'
        backendAzureRmResourceGroupName: '$(bkstrgrg)'
        backendAzureRmStorageAccountName: '$(bkstrg)'
        backendAzureRmContainerName: '$(bkcontainer)'
        backendAzureRmKey: '$(bkstrgkey)'
    - task: TerraformTaskV3@3
      displayName: plan
      inputs:
        provider: 'azurerm'
        command: 'plan'
        environmentServiceNameAzureRM: 'DevTestServiceConnection'
    - task: TerraformTaskV3@3
      displayName: apply
      inputs:
        provider: 'azurerm'
        command: 'apply'
        environmentServiceNameAzureRM: 'DevTestServiceConnection'

# TODO: deploy infrastructure

# TODO: deploy database

# TODO: deploy web app


Editor is loading...
Leave a Comment