This action will post workflow status notifications into your Slack channel. The notification includes the name of the Actor, Event, Branch, Workflow Name, Status and Run Durations. This action can optionally include the status and duration of individual jobs in a workflow to quickly help you identify where failures and slowdowns occur.
Name | Required | Description |
---|---|---|
slack_webhook_url | required | Create a Slack Webhook URL using the Incoming Webhooks App. It is recommended that you create a new secret on your repo SLACK_WEBHOOK_URL for holding this value, and passing it to the action with ${{secrets.SLACK_WEBHOOK_URL}} . |
repo_token | required | A token is automatically available in your workflow secrets var. ${{secrets.GITHUB_TOKEN}} . You can optionally send an alternative self-generated token. |
include_jobs | optional | When set to true , include individual job status and durations in the slack notification. When false only the event status and workflow status lines are included. When set to on-failure — individual job status is reported only if workflow failed. Default is true . |
jobs_to_fetch | optional | Sets the number of jobs to fetch (for workflows with big number of jobs). Default is 30. |
include_commit_message | optional | When set to true , include the workflow head commit message title in the slack notification. Default is true . |
include_jobs_time | optional | When set to true , includes the job duration in the slack notification. Default is true . |
channel | optional | Accepts a Slack channel name where you would like the notifications to appear. Overrides the default channel created with your webhook. |
name | optional | Allows you to provide a name for the slack bot user posting the notifications. Overrides the default name created with your webhook. |
icon_emoji | optional | Allows you to provide an emoji as the slack bot user image when posting notifications. Overrides the default image created with your webhook. Emoji Code Cheat Sheet |
icon_url | optional | Allows you to provide a URL for an image to use as the slack bot user image when posting notifications. Overrides the default image created with your webhook. |
notify_on | optional | When to send slack notification. Default is always . fail-only to only send if any job(s) have failed. |
To use this action properly, you should create a new job
at the end of your workflow that needs
all other jobs in the workflow. This ensures that this action is only run once all jobs in your workflow are complete.
This action requires read
permission of actions
scope. You should assign a job level actions
permission if workflow level actions
permission is set none
.
name: World Greeter
on:
push:
branches: [ master, staging ]
jobs:
job-1:
runs-on: ubuntu-latest
steps:
- name: Say Hello
run: echo "Hello"
job-2:
runs-on: ubuntu-latest
steps:
- name: Say World
run: echo "World"
slack-workflow-status:
if: always()
name: Post Workflow Status To Slack
needs:
- job-1
- job-2
runs-on: ubuntu-latest
# actions.read permission is required.
permissions:
actions: 'read'
steps:
- name: Slack Workflow Notification
uses: midleman/slack-workflow-status@master
with:
# Required Input
repo_token: ${{secrets.GITHUB_TOKEN}}
slack_webhook_url: ${{secrets.SLACK_WEBHOOK_URL}}
# Optional Input
channel: '#anthony-test-channel'
name: 'Anthony Workflow Bot'
icon_emoji: ':poop:'
icon_url: 'https://avatars0.githubusercontent.com/u/1701160?s=96&v=4'
This action can also be used for Pull Request workflows and will include pull request information in the notification.