resources: - repo: self trigger: - master - develop pool: vmImage: 'ubuntu-latest' demands: - npm - node.js variables: npm_config_cache: $(Pipeline.Workspace)/.npm steps: #install node 10.x - task: NodeTool@0 displayName: 'Use Node 10.x' inputs: versionSpec: 10.x checkLatest: true #cache files from previous run - task: CacheBeta@1 inputs: key: npm | $(Agent.OS) | package-lock.json path: $(npm_config_cache) cacheHitVar: CACHE_RESTORED #install nodejs modules with npm - script: npm ci displayName: 'npm ci' #bundle code with gulp - task: Gulp@0 displayName: 'gulp bundle' inputs: gulpFile: '$(Build.SourcesDirectory)/gulpfile.js' targets: bundle arguments: '--ship' continueOnError: true #start unit tests - script: npm test displayName: 'npm test' # Publish Test Results to Azure Pipelines/TFS - task: PublishTestResults@2 displayName: Publish test results inputs: testResultsFiles: '**/junit.xml' searchFolder: '$(Build.SourcesDirectory)' testResultsFormat: JUnit #failTaskOnFailedTests: true #if we want to fail the build on failed unit tests # publish coverage test results - task: PublishCodeCoverageResults@1 displayName: 'Publish Code Coverage Results' inputs: codeCoverageTool: Cobertura summaryFileLocation: '$(Build.SourcesDirectory)/**/*coverage.xml' #package solution with gulp - task: Gulp@0 displayName: 'gulp package-solution' inputs: gulpFile: '$(Build.SourcesDirectory)/gulpfile.js' targets: 'package-solution' arguments: '--ship' #copy files to artifact repository - task: CopyFiles@2 displayName: 'Copy Files to: $(build.artifactstagingdirectory)/drop' inputs: Contents: '**/*.sppkg' TargetFolder: '$(build.artifactstagingdirectory)/drop' #publish artifacts - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: drop' inputs: PathtoPublish: '$(build.artifactstagingdirectory)/drop'