{
   "name": "{{BuildDefName}}",
   "type": "build",
   "quality": "definition",
   "queue": {
      "id": "{{QueueId}}"
   },
   "build": [
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Run bower",
         "timeoutInMinutes": 0,
         "task": {
            "id": "d9bafed4-0b18-4f58-968d-86655b4d2ce9",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "filename": "bower",
            "arguments": "install",
            "workingFolder": "",
            "failOnStandardError": "false"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "npm install for test",
         "timeoutInMinutes": 0,
         "task": {
            "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "install",
            "arguments": "",
            "cwd": ""
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "npm test",
         "timeoutInMinutes": 0,
         "task": {
            "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "test",
            "arguments": "-- --grep unit*",
            "cwd": ""
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Publish Test Results",
         "timeoutInMinutes": 0,
         "task": {
            "id": "0b0f01ed-7dde-43ff-9cbb-e48954daf9b1",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "testRunner": "JUnit",
            "testResultsFiles": "**/xunit.xml",
            "mergeTestResults": "false",
            "testRunTitle": "",
            "platform": "",
            "configuration": "",
            "publishRunAttachments": "true"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Publish Code Coverage Results",
         "timeoutInMinutes": 0,
         "task": {
            "id": "2a7ebc54-c13e-490e-81a5-d7561ab7cd97",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "codeCoverageTool": "Cobertura",
            "summaryFileLocation": "$(Build.SourcesDirectory)/coverage/cobertura-coverage.xml",
            "reportDirectory": "$(Build.SourcesDirectory)/coverage/lcov-report",
            "additionalCodeCoverageFiles": "$(Build.SourcesDirectory)/coverage/lcov-report"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "npm install",
         "timeoutInMinutes": 0,
         "task": {
            "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "install",
            "arguments": "",
            "cwd": "src"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Build an image",
         "timeoutInMinutes": 0,
         "task": {
            "id": "b93c4522-5bea-4118-97ae-2b560628a157",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "dockerHostEndpoint": "{{dockerHostEndpoint}}",
            "dockerRegistryEndpoint": "{{dockerRegistryEndpoint}}",
            "action": "Build an image",
            "dockerFile": "src/dockerfile",
            "imageName": "{{dockerRegistryId}}/{{ProjectLowerCase}}:$(Build.BuildId)",
            "context": "src",
            "containerName": "",
            "ports": "",
            "envVars": "",
            "removeImageAfterPush": "false",
            "customCommand": "",
            "containerCommand": "",
            "cwd": ""
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Push an image",
         "timeoutInMinutes": 0,
         "task": {
            "id": "b93c4522-5bea-4118-97ae-2b560628a157",
            "versionSpec": "*",
            "definitionType": "task"
         },
         "inputs": {
            "dockerHostEndpoint": "{{dockerHostEndpoint}}",
            "dockerRegistryEndpoint": "{{dockerRegistryEndpoint}}",
            "action": "Push an image",
            "dockerFile": "**/Dockerfile",
            "imageName": "{{dockerRegistryId}}/{{ProjectLowerCase}}:$(Build.BuildId)",
            "context": "$(Build.StagingDirectory)",
            "containerName": "",
            "ports": "",
            "envVars": "",
            "removeImageAfterPush": "false",
            "customCommand": "",
            "containerCommand": "",
            "cwd": "$(System.DefaultWorkingDirectory)"
         }
      }
   ],
   "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
      }
   },
   "repository": {
      "properties": {
         "labelSources": "0",
         "reportBuildStatus": "true"
      },
      "type": "TfsGit",
      "name": "{{Project}}",
      "url": "https://{{VSTS}}.visualstudio.com/_git/{{Project}}",
      "defaultBranch": "refs/heads/master",
      "clean": "false",
      "checkoutSubmodules": false
   }
}