Notify Slack channels of updates from GitHub Actions
Thank you to @8398a7 for action-slack as the starting point of this repo!
See action.yml, checkin.yml
key | value | default | description |
---|---|---|---|
status | 'success' or 'failure' or 'cancelled' or 'custom' | '' | Recommend${{ job.status }} . |
text | any string | '' | You can add to text by specifying it. |
author_name | any string | 'indentinc@action-slack' | It can be overwritten by specifying. The job name is recommend. |
mention | 'here' or 'channel' or '' | '' | Always mention when specified. |
only_mention_fail | 'here' or 'channel' or '' | '' | If specified, mention only on failure. |
payload | e.g. {"text": "Custom Field Check", obj: 'LOWER CASE'.toLowerCase()} |
'' | Only available when status: custom. The payload format can pass javascript object. |
username | Only legacy incoming webhook supported. | '' | override the legacy integration's default name. |
icon_emoji | Only legacy incoming webhook supported. | '' | an emoji code string to use in place of the default icon. |
icon_url | Only legacy incoming webhook supported. | '' | an icon image URL string to use in place of the default icon. |
channel | Only legacy incoming webhook supported. | '' | override the legacy integration's default channel. This should be an ID, such as C8UJ12P4P . |
See here for payload
reference or Custom Notification.
- Message Formatting
- Enter json and check in preview.
- Reference: Message payloads
- uses: indentinc/github-action-slack-notify@v1
with:
status: ${{ job.status }}
author_name: Integration Test # default: indentinc@action-slack
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
if: always() # Pick up events even if the job fails or is canceled.
When adding to text, write as follows.
- uses: indentinc/github-action-slack-notify@v1
with:
status: ${{ job.status }}
text: overwrite text
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
In case of failure or cancellation, you will be notified as follows.
If you specify as follows, you can also support legacy incoming webhooks.
The specified secrets.SLACK_WEBHOOK_URL
must be legacy.
- uses: indentinc/github-action-slack-notify@v1
with:
type: ${{ job.status }}
username: Custom Username
icon_emoji: ':octocat:'
channel: '#integration-test'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
Use status: custom
if you want to send an arbitrary payload.
The payload format can pass javascript object.
- uses: indentinc/github-action-slack-notify@v1
with:
status: custom
payload: |
{
text: "Custom Field Check",
attachments: [{
"author_name": "indentinc@action-slack", // json
fallback: 'fallback',
color: 'good',
title: 'CI Result',
text: 'Succeeded',
fields: [{
title: 'lower case',
value: 'LOWER CASE CHECK'.toLowerCase(),
short: true
},
{
title: 'reverse',
value: 'gnirts esrever'.split('').reverse().join(''),
short: true
},
{
title: 'long title1',
value: 'long value1',
short: false
}],
actions: [{
}]
}]
}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # optional
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
Currently the field is fixed, but I want to make it selectable.
It is assumed that the input is in csv format.
- uses: indentinc/github-action-slack-notify@v1
with:
status: ${{ job.status }}
fields: repo,message,action,author
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required