Use "JUnit XML report" to generate Slack notification from Buildkite
This plugin was inspired by junit-annotate-buildkite-plugin which also retrieve JUnit XML reports and process them.
Add an extra step like this after running your tests to your pipeline.yml
:
steps:
- label: Run tests
key: my-test
command: ...
- label: ":slack: :memo: to #junit_bot_testing"
depends_on: my-test
allow_dependency_failure: true
plugins:
- iress/junit-slack-notification#v1.0.6:
artifacts: "**/*.xml"
SLACK_TOKEN: "xoxb-xxxxxxxxxxx-xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
SLACK_CHANNEL: "#junit_bot_testing"
or
steps:
- label: Run unit tests
key: my-unit-test
command: ...
- label: Run Verification tests
key: my-verification-test
command: ...
- label: ":slack: :memo: to #junit_bot_testing"
depends_on: my-test
allow_dependency_failure: true
plugins:
- iress/junit-slack-notification#v1.0.6:
test_suites:
- name: "Unit tests"
artifacts: "unit-test/**/*.xml"
- name: "Verification tests"
artifacts: "verification-test/**/*.xml"
SLACK_TOKEN: "xoxb-xxxxxxxxxxx-xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx"
SLACK_CHANNEL: "#junit_bot_testing"
The file pattern to use to retrieve JUnit XML reports
The object containing the JUnit XML reports. The object should be in the following format:
test_suites:
- name: "Test Suite 1"
artifacts: "test-suite-1/**/*.xml"
- name: "Test Suite 2"
artifacts: "test-suite-1/**/*.xml"
Name of the public Slack channel which your bot will report e.g. #junit_bot_testing
Name of the environment variable that contains the Slack API token. Default value: "SLACK_TOKEN"
The token of your Slack application which is allows chatting on your Slack organisation.
If you which to use a Docker registry proxy, specify the path prefix here
Contains an extra message to add on the bottom of the generated message. You can include a variable using the syntax {var}
.
EXTRA_SLACK_MESSAGE: "This project has a libyear of {LIBYEAR_DRIFT}"
with LIBYEAR_DRIFT
environment variable set to 0.5
will add the message This project has a libyear of 0.5
See Slack documentation Create a bot for your workspace for instruction to create a Slack application.
Here a sample of your slack application manifest sample. Make sure the scope of your bot is allowed to chat:write
& chat:write:public
_metadata:
major_version: 1
minor_version: 0
display_information:
name: JUnit Summary Bot
description: JUnit run summary information
background_color: "#000000"
features:
bot_user:
display_name: JUnit Summary Bot
always_online: false
oauth_config:
scopes:
bot:
- chat:write
- chat:write.public
settings:
org_deploy_enabled: false
socket_mode_enabled: false
token_rotation_enabled: false
To start development, install dependency package and compile typescript
npm install
npm run build
To run unit tests in Jest
npm run test
- Fork the repo
- Make the changes
- Run the tests
- Commit and push your changes
- Send a pull request
MIT License (See the included Licence file for more information).