Azure DevOps extension that publishes HTML reports as build result tabs.
Features
- Living Doc tab: Displays the Reqnroll/SpecFlow living documentation report
- Coverage Dashboard tab: Displays the product coverage dashboard
Pipeline Usage
- task: PublishJazzReport@1
displayName: 'Living Doc Tab'
condition: always()
inputs:
htmlPath: '$(ReportFolderPath)\report.html'
tabName: 'living-doc'
- task: PublishJazzReport@1
displayName: 'Coverage Dashboard Tab'
condition: always()
inputs:
htmlPath: '$(Build.ArtifactStagingDirectory)\HtmlReport\index.html'
tabName: 'coverage-dashboard'
Build & Publish
Prerequisites
- Node.js 16+
tfx-cliinstalled globally:npm install -g tfx-cli
Steps
-
Install dependencies:
cd task && npm install && cd .. cd tab && npm install && cd .. -
Copy VSS SDK:
cp tab/node_modules/vss-web-extension-sdk/lib/VSS.SDK.min.js tab/lib/VSS.SDK.min.js -
Generate a unique task ID: Replace the
idintask/task.jsonwith a new GUID:[guid]::NewGuid().ToString()Then update
supportsTasksinvss-extension.jsonwith the same GUID. -
Package the extension:
tfx extension create --manifest-globs vss-extension.json -
Publish to your org:
tfx extension publish --manifest-globs vss-extension.json --token <PAT>Or upload the
.vsixfile manually at https://marketplace.visualstudio.com/manage/publishers/swissre -
Install in your ADO org via Organization Settings → Extensions
How It Works
- The pipeline task uploads the HTML file as a build timeline attachment (
task.addattachment) - The build results tab fetches the attachment via ADO REST API and renders it in a sandboxed iframe
- Full HTML/CSS/JS is preserved — no sanitization like Wiki's
:::htmlblock