{
   "name": "{{BuildDefName}}",
   "type": "build",
   "quality": "definition",
   "buildNumberFormat": "$(BuildDefinitionName)-$(BuildID)",
   "queue": {
      "id": "{{QueueId}}"
   },
   "build": [
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "NPM Install for Test",
         "refName": "npm_install_for_test",
         "timeoutInMinutes": 0,
         "task": {
            "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "custom",
            "workingDir": "",
            "verbose": "false",
            "customCommand": "install",
            "customRegistry": "useNpmrc",
            "customFeed": "",
            "customEndpoint": "",
            "publishRegistry": "useExternalRegistry",
            "publishFeed": "",
            "publishEndpoint": ""
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "grunt ",
         "timeoutInMinutes": 0,
         "task": {
            "id": "521d1e15-f5fb-4b73-a93b-b2fe88a9a286",
            "versionSpec": "0.*",
            "definitionType": "task"
         },
         "inputs": {
            "gruntFile": "Gruntfile.js",
            "targets": "",
            "arguments": "",
            "cwd": "",
            "gruntCli": "node_modules/grunt-cli/bin/grunt",
            "publishJUnitResults": "false",
            "testResultsFiles": "**/TEST-*.xml",
            "testRunTitle": "",
            "enableCodeCoverage": "false",
            "testFramework": "Mocha",
            "srcFiles": "",
            "testFiles": "test/*.js"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "npm test",
         "refName": "npm_test",
         "timeoutInMinutes": 0,
         "task": {
            "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "custom",
            "workingDir": "",
            "verbose": "false",
            "customCommand": "test",
            "customRegistry": "useNpmrc",
            "customFeed": "",
            "customEndpoint": "",
            "publishRegistry": "useExternalRegistry",
            "publishFeed": "",
            "publishEndpoint": ""
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": true,
         "displayName": "Publish Test Results",
         "refName": "publish_tests",
         "timeoutInMinutes": 0,
         "task": {
            "id": "0b0f01ed-7dde-43ff-9cbb-e48954daf9b1",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "testRunner": "JUnit",
            "testResultsFiles": "unit.xml",
            "searchFolder": "$(System.DefaultWorkingDirectory)",
            "mergeTestResults": "false",
            "testRunTitle": "Unit",
            "platform": "$(BuildPlatform)",
            "configuration": "$(BuildConfiguration)",
            "publishRunAttachments": "false"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": true,
         "displayName": "Publish Code Coverage Results",
         "refName": "publish_codeCoverage",
         "timeoutInMinutes": 0,
         "task": {
            "id": "2a7ebc54-c13e-490e-81a5-d7561ab7cd97",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "codeCoverageTool": "Cobertura",
            "summaryFileLocation": "$(Build.SourcesDirectory)/coverage/cobertura-coverage.xml",
            "reportDirectory": "$(Build.SourcesDirectory)/coverage/lcov-report",
            "additionalCodeCoverageFiles": "",
            "failIfCoverageEmpty": "false"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "NPM Install for Src",
         "refName": "npm_install_for_src",
         "timeoutInMinutes": 0,
         "task": {
            "id": "fe47e961-9fa8-4106-8639-368c022d43ad",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "command": "custom",
            "workingDir": "src",
            "verbose": "false",
            "customCommand": "install",
            "customRegistry": "useNpmrc",
            "customFeed": "",
            "customEndpoint": "",
            "publishRegistry": "useExternalRegistry",
            "publishFeed": "",
            "publishEndpoint": ""
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Archive files",
         "refName": "archive_files",
         "timeoutInMinutes": 0,
         "task": {
            "id": "d8b84976-e99a-4b86-b885-4849694435b0",
            "versionSpec": "1.*",
            "definitionType": "task"
         },
         "inputs": {
            "rootFolder": "src",
            "includeRootFolder": "false",
            "archiveType": "zip",
            "tarCompression": "gz",
            "archiveFile": "{{Project}}.zip",
            "replaceExistingArchive": "true"
         }
      },
      {
         "enabled": true,
         "continueOnError": false,
         "alwaysRun": false,
         "displayName": "Copy Files",
         "refName": "copy_files",
         "timeoutInMinutes": 0,
         "task": {
            "id": "5bfb729a-a7c8-4a78-a7c3-8d717bb7c13c",
            "versionSpec": "2.*",
            "definitionType": "task"
         },
         "inputs": {
            "SourceFolder": "",
            "Contents": "**/{{Project}}.zip\n**/templates/website.json\n**/templates/website.parameters.json",
            "TargetFolder": "$(build.artifactstagingdirectory)",
            "CleanTargetFolder": "true",
            "OverWrite": "false",
            "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.artifactstagingdirectory)",
            "ArtifactName": "drop",
            "ArtifactType": "Container",
            "TargetPath": "\\\\my\\share\\$(Build.DefinitionName)\\$(Build.BuildNumber)",
            "Parallel": "false",
            "ParallelCount": "8"
         }
      }
   ],
   "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": "{{TFS}}/_git/{{Project}}",
      "defaultBranch": "refs/heads/master",
      "clean": "false",
      "checkoutSubmodules": false
   }
}