buildnote report
Collect and report on test results
Usage
buildnote report <options>Options
--source
Specifies source data mode (local or remote).
Local Mode
When local source data mode is selected, reports will be produced from locally collected events configured via command line options or buildnote.json config.
Remote Mode
When remote source data specified, reports will be produced from events collected and stored in buildnote service. Configuring BUILDNOTE_API_KEY environment variable is required for remote mode.
Values: (local|remote)
--template
Path to template file used to format report.
Example:
--template "template.json"This option will replace report.template value set in buildnote.json config file.
Values: value
--summary-enabled
Produces extended summary if possible.
If BUILDNOTE_API_KEY environment variable is configured and this option is enabled, the summary will be additionally fetched from the Buildnote service.
Values: [true|false]
--org
Organisation identifier
Values: value
--project
Project identifier
Values: value
--module
Module identifier
Values: value
--build
Build identifier
Values: value
--sha
Commit SHA associated with the upload (e.g: 58e53b26ced5fffc72ba5427535e7b5867950b13
Values: value
--ref
Commit Ref associated with the upload (e.g:refs/heads/main)
Values: value
-h, --help
Show this message and exit
JUnit Collector
Options for collecting junit events.
--junit-enabled
Enable or disable junit collector.
Example:
--junit-enabled trueThis flag will replace collect.junit.enabled value set in buildnote.json config file.
Values: [true|false]
--junit-include
Glob pattern for files to include.
Example of including nested files:
--junit-include "**/file-*.xml"Example of multiple includes:
--junit-include "**/file-*.xml" --junit-include "another-file.txt"This option will merge with collect.junit.include values set in buildnote.json config file.
Values: text
--junit-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--junit-exclude "**/out"Example of multiple excludes:
--junit-exclude "**/out" --junit-exclude "build"This option will merge with collect.junit.exclude values set in buildnote.json config file.
Values: text
--junit-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--junit-metadata user="$USER" --junit-metadata host="$HOST"This option will merge with collect.junit.metadata values set in buildnote.json config file.
Values: value
TestNG Collector
Options for collecting testng events.
--testng-enabled
Enable or disable testng collector.
Example:
--testng-enabled trueThis flag will replace collect.testng.enabled value set in buildnote.json config file.
Values: [true|false]
--testng-include
Glob pattern for files to include.
Example of including nested files:
--testng-include "**/file-*.xml"Example of multiple includes:
--testng-include "**/file-*.xml" --testng-include "another-file.txt"This option will merge with collect.testng.include values set in buildnote.json config file.
Values: text
--testng-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--testng-exclude "**/out"Example of multiple excludes:
--testng-exclude "**/out" --testng-exclude "build"This option will merge with collect.testng.exclude values set in buildnote.json config file.
Values: text
--testng-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--testng-metadata user="$USER" --testng-metadata host="$HOST"This option will merge with collect.testng.metadata values set in buildnote.json config file.
Values: value
Cucumber Collector
Options for collecting cucumber events.
--cucumber-enabled
Enable or disable cucumber collector.
Example:
--cucumber-enabled trueThis flag will replace collect.cucumber.enabled value set in buildnote.json config file.
Values: [true|false]
--cucumber-include
Glob pattern for files to include.
Example of including nested files:
--cucumber-include "**/file-*.xml"Example of multiple includes:
--cucumber-include "**/file-*.xml" --cucumber-include "another-file.txt"This option will merge with collect.cucumber.include values set in buildnote.json config file.
Values: text
--cucumber-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--cucumber-exclude "**/out"Example of multiple excludes:
--cucumber-exclude "**/out" --cucumber-exclude "build"This option will merge with collect.cucumber.exclude values set in buildnote.json config file.
Values: text
--cucumber-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--cucumber-metadata user="$USER" --cucumber-metadata host="$HOST"This option will merge with collect.cucumber.metadata values set in buildnote.json config file.
Values: value
Dart/Flutter Collector
Options for collecting dart/flutter events.
--dart-enabled
Enable or disable dart/flutter collector.
Example:
--dart-enabled trueThis flag will replace collect.dart.enabled value set in buildnote.json config file.
Values: [true|false]
--dart-include
Glob pattern for files to include.
Example of including nested files:
--dart-include "**/file-*.xml"Example of multiple includes:
--dart-include "**/file-*.xml" --dart-include "another-file.txt"This option will merge with collect.dart.include values set in buildnote.json config file.
Values: text
--dart-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--dart-exclude "**/out"Example of multiple excludes:
--dart-exclude "**/out" --dart-exclude "build"This option will merge with collect.dart.exclude values set in buildnote.json config file.
Values: text
--dart-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--dart-metadata user="$USER" --dart-metadata host="$HOST"This option will merge with collect.dart.metadata values set in buildnote.json config file.
Values: value
NUnit Collector
Options for collecting nunit events.
--nunit-enabled
Enable or disable nunit collector.
Example:
--nunit-enabled trueThis flag will replace collect.nunit.enabled value set in buildnote.json config file.
Values: [true|false]
--nunit-include
Glob pattern for files to include.
Example of including nested files:
--nunit-include "**/file-*.xml"Example of multiple includes:
--nunit-include "**/file-*.xml" --nunit-include "another-file.txt"This option will merge with collect.nunit.include values set in buildnote.json config file.
Values: text
--nunit-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--nunit-exclude "**/out"Example of multiple excludes:
--nunit-exclude "**/out" --nunit-exclude "build"This option will merge with collect.nunit.exclude values set in buildnote.json config file.
Values: text
--nunit-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--nunit-metadata user="$USER" --nunit-metadata host="$HOST"This option will merge with collect.nunit.metadata values set in buildnote.json config file.
Values: value
XUnit Collector
Options for collecting xunit events.
--xunit-enabled
Enable or disable xunit collector.
Example:
--xunit-enabled trueThis flag will replace collect.xunit.enabled value set in buildnote.json config file.
Values: [true|false]
--xunit-include
Glob pattern for files to include.
Example of including nested files:
--xunit-include "**/file-*.xml"Example of multiple includes:
--xunit-include "**/file-*.xml" --xunit-include "another-file.txt"This option will merge with collect.xunit.include values set in buildnote.json config file.
Values: text
--xunit-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--xunit-exclude "**/out"Example of multiple excludes:
--xunit-exclude "**/out" --xunit-exclude "build"This option will merge with collect.xunit.exclude values set in buildnote.json config file.
Values: text
--xunit-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--xunit-metadata user="$USER" --xunit-metadata host="$HOST"This option will merge with collect.xunit.metadata values set in buildnote.json config file.
Values: value
CTRF Collector
Options for collecting ctrf events.
--ctrf-enabled
Enable or disable ctrf collector.
Example:
--ctrf-enabled trueThis flag will replace collect.ctrf.enabled value set in buildnote.json config file.
Values: [true|false]
--ctrf-include
Glob pattern for files to include.
Example of including nested files:
--ctrf-include "**/file-*.xml"Example of multiple includes:
--ctrf-include "**/file-*.xml" --ctrf-include "another-file.txt"This option will merge with collect.ctrf.include values set in buildnote.json config file.
Values: text
--ctrf-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--ctrf-exclude "**/out"Example of multiple excludes:
--ctrf-exclude "**/out" --ctrf-exclude "build"This option will merge with collect.ctrf.exclude values set in buildnote.json config file.
Values: text
--ctrf-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--ctrf-metadata user="$USER" --ctrf-metadata host="$HOST"This option will merge with collect.ctrf.metadata values set in buildnote.json config file.
Values: value
TRX Collector
Options for collecting trx events.
--trx-enabled
Enable or disable trx collector.
Example:
--trx-enabled trueThis flag will replace collect.trx.enabled value set in buildnote.json config file.
Values: [true|false]
--trx-include
Glob pattern for files to include.
Example of including nested files:
--trx-include "**/file-*.xml"Example of multiple includes:
--trx-include "**/file-*.xml" --trx-include "another-file.txt"This option will merge with collect.trx.include values set in buildnote.json config file.
Values: text
--trx-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--trx-exclude "**/out"Example of multiple excludes:
--trx-exclude "**/out" --trx-exclude "build"This option will merge with collect.trx.exclude values set in buildnote.json config file.
Values: text
--trx-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--trx-metadata user="$USER" --trx-metadata host="$HOST"This option will merge with collect.trx.metadata values set in buildnote.json config file.
Values: value
Robot Framework Collector
Options for collecting robot framework events.
--robot-enabled
Enable or disable robot framework collector.
Example:
--robot-enabled trueThis flag will replace collect.robot.enabled value set in buildnote.json config file.
Values: [true|false]
--robot-include
Glob pattern for files to include.
Example of including nested files:
--robot-include "**/file-*.xml"Example of multiple includes:
--robot-include "**/file-*.xml" --robot-include "another-file.txt"This option will merge with collect.robot.include values set in buildnote.json config file.
Values: text
--robot-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--robot-exclude "**/out"Example of multiple excludes:
--robot-exclude "**/out" --robot-exclude "build"This option will merge with collect.robot.exclude values set in buildnote.json config file.
Values: text
--robot-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--robot-metadata user="$USER" --robot-metadata host="$HOST"This option will merge with collect.robot.metadata values set in buildnote.json config file.
Values: value
QT Test Collector
Options for collecting qt test events.
--qt-enabled
Enable or disable qt test collector.
Example:
--qt-enabled trueThis flag will replace collect.qt.enabled value set in buildnote.json config file.
Values: [true|false]
--qt-include
Glob pattern for files to include.
Example of including nested files:
--qt-include "**/file-*.xml"Example of multiple includes:
--qt-include "**/file-*.xml" --qt-include "another-file.txt"This option will merge with collect.qt.include values set in buildnote.json config file.
Values: text
--qt-exclude
Glob pattern for files to exclude.
Example of excluding nested directories:
--qt-exclude "**/out"Example of multiple excludes:
--qt-exclude "**/out" --qt-exclude "build"This option will merge with collect.qt.exclude values set in buildnote.json config file.
Values: text
--qt-metadata
Additional metadata associated with events.
Example of multiple metadata items:
--qt-metadata user="$USER" --qt-metadata host="$HOST"This option will merge with collect.qt.metadata values set in buildnote.json config file.
Values: value
Slack Reporter
Options for slack reporter.
--slack-enabled
Enable or disable slack reporter.
Example:
--slack-enabled trueThis flag will replace report.slack.enabled value set in buildnote.json config file.
Values: [true|false]
--slack-condition
Slack webhook condition evaluated as expression.
Example for failing builds only:
--slack-condition "{{failed}}"You can also access environment variables and combine expressions.
Example of complex condition:
--slack-condition "{{failed || successful || env.USER == 'some-user'}}"This option will replace report.slack.condition value set in buildnote.json config file.
Values: text
--slack-template
Path to template file used to format report.
Example:
--slack-template "template.json"This option will replace report.slack.template value set in buildnote.json config file.
Values: value
--slack-url
Slack webhook notification url.
Example:
--slack-url "https://hooks.slack.com/services/..."Urls are evaluated as expressions and can, for example, be sourced from environment variables.
Example with environment variable:
--slack-url "{{env.SLACK_WEBHOOK_URL}}"This option will replace report.slack.url value set in buildnote.json config file.
Values: text
--slack-title
Slack message title that replaces default one.
Example of fixed title:
--slack-title "Some title"Title is evaluated as expressions so you can also access environment and context variables.
Example of complex title:
--slack-title "E2E test {{status}} - {{env.GITHUB_WORKFLOW}} - {{env.GITHUB_RUN_ID}} (attempt: {{env.GITHUB_RUN_ATTEMPT}})"This option will replace report.slack.title value set in buildnote.json config file.
Values: text
--slack-title-url
Slack message title url that replaces default one.
Title url is evaluated as expressions and can be templated with environment and context variables.
Example with variable:
--slack-title-url "https://www.example.com/status/{{status}}"This option will replace report.slack.titleUrl value set in buildnote.json config file.
Values: text
Discord Reporter
Options for discord reporter.
--discord-enabled
Enable or disable discord reporter.
Example:
--discord-enabled trueThis flag will replace report.discord.enabled value set in buildnote.json config file.
Values: [true|false]
--discord-condition
Discord webhook condition evaluated as expression.
Example for failing builds only:
--discord-condition "{{failed}}"You can also access environment variables and combine expressions.
Example of complex condition:
--discord-condition "{{failed || successful || env.USER == 'some-user'}}"This option will replace report.discord.condition value set in buildnote.json config file.
Values: text
--discord-template
Path to template file used to format report.
Example:
--discord-template "template.json"This option will replace report.discord.template value set in buildnote.json config file.
Values: value
--discord-url
Discord webhook notification url.
Example:
--discord-url "https://discord.com/api/webhooks/..."Urls are evaluated as expressions and can, for example, be sourced from environment variables.
Example with environment variable:
--discord-url "{{env.DISCORD_WEBHOOK_URL}}"This option will replace report.discord.url value set in buildnote.json config file.
Values: text
--discord-title
Discord message title that replaces default one.
Example of fixed title:
--discord-title "Some title"Title is evaluated as expressions so you can also access environment and context variables.
Example of complex title:
--discord-title "E2E test {{status}} - {{env.GITHUB_WORKFLOW}} - {{env.GITHUB_RUN_ID}} (attempt: {{env.GITHUB_RUN_ATTEMPT}})"This option will replace report.discord.title value set in buildnote.json config file.
Values: text
--discord-title-url
Discord message title url that replaces default one.
Title url is evaluated as expressions and can be templated with environment and context variables.
Example with variable:
--discord-title-url "https://www.example.com/status/{{status}}"This option will replace report.discord.titleUrl value set in buildnote.json config file.
Values: text
GitHub Reporter
Options for GitHub reporter.
--github-enabled
Enable or disable GitHub reporter.
Example:
--github-enabled trueThis flag will replace report.github.enabled value set in buildnote.json config file.
Values: [true|false]
--github-condition
GitHub report condition evaluated as expression.
Example for failing builds only:
--github-condition "{{failed}}"You can also access environment variables and combine expressions.
Example of complex condition:
--github-condition "{{failed || successful || env.USER == 'some-user'}}"This option will replace report.github.condition value set in buildnote.json config file.
Values: text
--github-template
Path to template file used to format report.
Example:
--github-template "template.json"This option will replace report.github.template value set in buildnote.json config file.
Values: value
--github-token
GitHub token.
Example:
--github-token "gha_..."Token is evaluated as expressions and can, for example, be sourced from environment variables.
Example with environment variable:
--github-token "{{env.GITHUB_TOKEN}}"If you would like to use default GitHub Action token (secrets.GITHUB_TOKEN) adjusting the workflow job permissions is required.
Those permissions vary by repository type:
Public repositories:
permissions:
checks: write
pull-requests: writePrivate repositories:
permissions:
contents: read
issues: read
checks: write
pull-requests: writeNOTE
When using --github-comment-enabled false the issue comment is disabled and the pull-requests: write permission is not required.
This option will replace report.github.token value set in buildnote.json config file.
Values: text
--github-comment-enabled
Enable or disable GitHub comment on PRs.
Example:
--github-comment-enabled trueThis flag will replace report.github.commentEnabled value set in buildnote.json config file.
Values: [true|false]
--github-comment-updates
Enable or disable GitHub comment updates.
If true it updates existing comment on issues, otherwise set to false it will create a new issue comment each time.
Example:
--github-comment-updates trueThis flag will replace report.github.commentUpdates value set in buildnote.json config file.
Values: [true|false]
--github-comment-title
GitHub issue comment title that replaces default one.
IMPORTANT
GitHub comments will be updated based on comment title. This may cause previous comments to be overridden if multiple reports are collected in different stages of the build.
Example of fixed title:
--github-comment-title "Some title"Title is evaluated as expressions so you can also access environment and context variables.
Example of complex title:
--github-comment-title "E2E test {{status}} - {{env.GITHUB_WORKFLOW}} - {{env.GITHUB_RUN_ID}} (attempt: {{env.GITHUB_RUN_ATTEMPT}})"This option will replace report.github.commentTitle value set in buildnote.json config file.
Values: text
--github-comment-title-url
GitHub issue comment title url that replaces default one.
Title url is evaluated as expressions and can be templated with environment and context variables.
Example with variable:
--github-comment-title-url "https://www.example.com/status/{{status}}"This option will replace report.github.commentTitleUrl value set in buildnote.json config file.
Values: text
Html Reporter
Options for html reporter.
--html-enabled
Enable or disable html reporter.
Example:
--html-enabled trueThis flag will replace report.html.enabled value set in buildnote.json config file.
Values: [true|false]
--html-condition
Html reporter condition evaluated as expression.
Example for failing builds only:
--html-condition "{{failed}}"You can also access environment variables and combine expressions.
Example of complex condition:
--html-condition "{{failed || successful || env.USER == 'some-user'}}"This option will replace report.html.condition value set in buildnote.json config file.
Values: text
--html-template
Path to template file used to format report.
Example:
--html-template "template.json"This option will replace report.html.template value set in buildnote.json config file.
Values: value
--html-output-file
Html reporter output file.
Example for fixed output file:
--html-output-file "test-report.html"You can also access environment variables and combine expressions.
Example of complex output file:
--html-output-file "{{env.USER}}/test-report.html"This option will replace report.html.outputFile value set in buildnote.json config file.
Values: text
Context Variables
This section contains the list of context variables available when evaluating expressions.
always
Boolean that is always true.
build
Build identifier for this run.
failed
Boolean that indicates if any events in the report had failed.
failed.count
Number of failed events in the report.
failed.percentage
Formatted percentage of failed events in the report.
Example: 0.97%
module
Name of the module.
never
Boolean that is always false.
org
Name of the org.
project
Name of the project.
ref
Ref associated with this report.
sha
Commit SHA associated with this report.
skipped
Boolean that indicates if all events in the report were skipped.
skipped.count
Number of skipped events in the report.
skipped.percentage
Formatted percentage of skipped events in the report.
Example: 0.97%
status
Overall status of the report.
Example: successful, failed or skipped
successful
Boolean that indicates no failures and that some events in the report were successful.
successful.count
Number of successful events in the report.
successful.percentage
Formatted percentage of successful events in the report.
Example: 0.97%
total
Total number events in the report.