{
   "name": "{{BuildDefName}}",
   "type": "build",
   "quality": "definition",
   "buildNumberFormat": "$(BuildDefinitionName)-$(BuildID)",
   "queue": {
      "id": "{{QueueId}}"
   },
   "build": [
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Install bower",
         "refName": "install_bower",
         "timeoutInMinutes": 0,
         "task": {
            "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
            "versionSpec": "0.*",
            "definitionType": "task"
         },
         "inputs": {
            "cwd": "",
            "command": "install",
            "arguments": "bower --allow-root"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Run bower",
         "refName": "run_bower",
         "timeoutInMinutes": 0,
         "task": {
            "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "filename": "bower",
            "arguments": "install --allow-root",
            "workingFolder": "src/{{Project}}",
            "failOnStandardError": "false"
         }
      },
      {
         "environment": {},
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Use .NET Core SDK 2.0.0",
         "refName": "install_dotnet",
         "timeoutInMinutes": 0,
         "condition": "succeeded()",
         "task": {
            "id": "b0ce7256-7898-45d3-9cb5-176b752bfea6",
            "versionSpec": "0.*",
            "definitionType": "task"
         },
         "inputs": {
            "packageType": "sdk",
            "version": "2.0.0"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Restore",
         "refName": "dotnet_restore",
         "timeoutInMinutes": 0,
         "task": {
            "id": "5541a522-603c-47ad-91fc-a4b1d163081b",
            "versionSpec": "2.*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "restore",
            "publishWebProjects": "true",
            "projects": "*.sln",
            "arguments": "--no-cache",
            "zipAfterPublish": "true"
         }
      },
      {
         "environment": {},
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Test",
         "timeoutInMinutes": 0,
         "refName": "run_tests",
         "task": {
            "id": "5541a522-603c-47ad-91fc-a4b1d163081b",
            "versionSpec": "2.*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "test",
            "publishWebProjects": "true",
            "projects": "**/*.Tests.csproj",
            "custom": "",
            "arguments": "-l trx",
            "publishTestResults": "false",
            "zipAfterPublish": "true",
            "modifyOutputPath": "true",
            "selectOrConfig": "select",
            "feedRestore": "",
            "includeNuGetOrg": "true",
            "nugetConfigPath": "",
            "externalEndpoints": "",
            "noCache": "false",
            "packagesDirectory": "",
            "verbosityRestore": "Detailed",
            "searchPatternPush": "$(Build.ArtifactStagingDirectory)/*.nupkg",
            "nuGetFeedType": "internal",
            "feedPublish": "",
            "externalEndpoint": "",
            "searchPatternPack": "**/*.csproj",
            "configurationToPack": "$(BuildConfiguration)",
            "outputDir": "$(Build.ArtifactStagingDirectory)",
            "nobuild": "false",
            "versioningScheme": "off",
            "versionEnvVar": "",
            "requestedMajorVersion": "1",
            "requestedMinorVersion": "0",
            "requestedPatchVersion": "0",
            "buildProperties": "",
            "verbosityPack": "Detailed",
            "workingDirectory": ""
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": true,
         "displayName": "Publish Test Results",
         "refName": "publish_tests",
         "timeoutInMinutes": 0,
         "task": {
            "id": "0b0f01ed-7dde-43ff-9cbb-e48954daf9b1",
            "versionSpec": "2.*",
            "definitionType": "task"
         },
         "inputs": {
            "testRunner": "VSTest",
            "testResultsFiles": "**/*.trx",
            "searchFolder": "$(System.DefaultWorkingDirectory)",
            "mergeTestResults": "false",
            "testRunTitle": "Unit",
            "platform": "$(BuildPlatform)",
            "configuration": "$(BuildConfiguration)",
            "publishRunAttachments": "false"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Publish",
         "refName": "dotnet_publish",
         "timeoutInMinutes": 0,
         "task": {
            "id": "5541a522-603c-47ad-91fc-a4b1d163081b",
            "versionSpec": "2.*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "publish",
            "publishWebProjects": "true",
            "projects": "",
            "arguments": "--configuration $(BuildConfiguration) --output $(Build.StagingDirectory)/pub",
            "zipAfterPublish": "false"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Copy Dockerfile",
         "refName": "copy_dockerfile",
         "timeoutInMinutes": 0,
         "task": {
            "id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
            "versionSpec": "2.*",
            "definitionType": "task"
         },
         "inputs": {
            "SourceFolder": "src/{{Project}}",
            "Contents": "Dockerfile",
            "TargetFolder": "$(Build.StagingDirectory)/pub/{{Project}}",
            "CleanTargetFolder": "false",
            "OverWrite": "false"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Build an image",
         "refName": "build_image",
         "timeoutInMinutes": 0,
         "task": {
            "id": "e28912f1-0114-4464-802a-a3a35437fd16",
            "versionSpec": "0.*",
            "definitionType": "task"
         },
         "inputs": {
            "containerregistrytype": "Container Registry",
            "dockerRegistryEndpoint": "{{dockerRegistryEndpoint}}",
            "azureSubscriptionEndpoint": "",
            "azureContainerRegistry": "",
            "action": "Build an image",
            "dockerFile": "$(Build.StagingDirectory)/pub/{{Project}}/Dockerfile",
            "buildArguments": "",
            "defaultContext": "false",
            "context": "$(Build.StagingDirectory)/pub/{{Project}}",
            "imageName": "{{dockerRegistryId}}/{{ProjectLowerCase}}:$(Build.BuildId)",
            "qualifyImageName": "false",
            "additionalImageTags": "",
            "includeSourceTags": "false",
            "includeLatestTag": "false",
            "imageDigestFile": "",
            "containerName": "",
            "ports": "",
            "volumes": "",
            "envVars": "",
            "workDir": "",
            "entrypoint": "",
            "containerCommand": "",
            "detached": "true",
            "restartPolicy": "no",
            "restartMaxRetries": "",
            "customCommand": "",
            "dockerHostEndpoint": "{{dockerHostEndpoint}}",
            "cwd": "$(Build.StagingDirectory)/pub/{{Project}}"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Push an image",
         "refName": "push_image",
         "timeoutInMinutes": 0,
         "task": {
            "id": "e28912f1-0114-4464-802a-a3a35437fd16",
            "versionSpec": "0.*",
            "definitionType": "task"
         },
         "inputs": {
            "containerregistrytype": "Container Registry",
            "dockerRegistryEndpoint": "{{dockerRegistryEndpoint}}",
            "azureSubscriptionEndpoint": "",
            "azureContainerRegistry": "",
            "action": "Push an image",
            "dockerFile": "**/Dockerfile",
            "buildArguments": "",
            "defaultContext": "true",
            "context": "",
            "imageName": "{{dockerRegistryId}}/{{ProjectLowerCase}}:$(Build.BuildId)",
            "qualifyImageName": "false",
            "additionalImageTags": "",
            "includeSourceTags": "false",
            "includeLatestTag": "false",
            "imageDigestFile": "",
            "containerName": "",
            "ports": "",
            "volumes": "",
            "envVars": "",
            "workDir": "",
            "entrypoint": "",
            "containerCommand": "",
            "detached": "true",
            "restartPolicy": "no",
            "restartMaxRetries": "",
            "customCommand": "",
            "dockerHostEndpoint": "{{dockerHostEndpoint}}",
            "cwd": "$(System.DefaultWorkingDirectory)"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Copy ARM template files to publish folder",
         "refName": "copy_files",
         "timeoutInMinutes": 0,
         "task": {
            "id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
            "versionSpec": "2.*",
            "definitionType": "task"
         },
         "inputs": {
            "SourceFolder": "templates/",
            "Contents": "**",
            "TargetFolder": "$(Build.StagingDirectory)/pub/templates/",
            "CleanTargetFolder": "false",
            "OverWrite": "true",
            "flattenFolders": "false"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Publish Artifact: drop",
         "refName": "publish_artifacts",
         "timeoutInMinutes": 0,
         "task": {
            "id": "2ff763a7-ce83-4e1f-bc89-0ae63477cebe",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "PathtoPublish": "$(Build.StagingDirectory)/pub/templates",
            "ArtifactName": "drop",
            "ArtifactType": "Container",
            "TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)"
         }
      }
   ],
   "triggers": [
      {
         "branchFilters": [
            "+refs/heads/master"
         ],
         "pathFilters": [],
         "batchChanges": false,
         "maxConcurrentBuildsPerBranch": 1,
         "triggerType": "continuousIntegration"
      }
   ],
   "variables": {
      "system.debug": {
         "value": "false",
         "allowOverride": true
      },
      "BuildConfiguration": {
         "value": "release",
         "allowOverride": true
      },
      "BuildPlatform": {
         "value": "any cpu",
         "allowOverride": true
      },
      "DOTNET_SKIP_FIRST_TIME_EXPERIENCE": {
         "value": "true",
         "allowOverride": false
      },
      "NUGET_XMLDOC_MODE": {
         "value": "skip",
         "allowOverride": false
      }
   },
   "repository": {
      "properties": {
         "labelSources": "0",
         "reportBuildStatus": "true"
      },
      "type": "TfsGit",
      "name": "{{Project}}",
      "url": "{{TFS}}/_git/{{Project}}",
      "defaultBranch": "refs/heads/master",
      "clean": "false",
      "checkoutSubmodules": false
   }
}