Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
send

GitHub Action

Notify Slack Action

1.3.0

Notify Slack Action

send

Notify Slack Action

Send Github Actions workflow status notifications to Slack

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Notify Slack Action

uses: ravsamhq/[email protected]

Learn more about this action in ravsamhq/notify-slack-action

Choose a version

Create Release License: MIT

Notify Slack Action

Send Github Actions workflow status notifications to Slack regarding failures, warnings or even success. You can read more about the action in our blog post.

Features

  • Ability to control when to send notification
  • Custom Notification Title, Message and Footer using template variables
  • Mention Users and control when to mention them
  • Mention Users Groups and control when to mention them

Inputs

status:
  description: Job Status
  required: true

notification_title:
  description: Specify on the notification message title
  required: false
  default: 'New Github Action Run'

message_format:
  description: Specify on the notification message format
  required: false
  default: '{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}@{branch}> on <{commit_url}|{commit_sha}>'

footer:
  description: Specify the footer of the message
  required: false
  default: 'Developed by <https://www.ravsam.in|RavSam>'

notify_when:
  description: Specify on which events a slack notification is sent
  required: false
  default: 'success,failure,warnings'

mention_users:
  description: Specify the slack IDs of users you want to mention.
  required: false
  default: ''

mention_users_when:
  description: Specify on which events you want to mention the users
  required: false
  default: 'success,failure,warnings'

mention_groups:
  description: Specify the slack IDs of groups you want to mention
  required: false
  default: ''
  
mention_groups_when:
  description: Specify on which events you want to mention the groups
  required: false
  default: 'success,failure,warnings'

Example workflows

The following variables are available for formatting your own strings.

  • {branch}
  • {commit_url}
  • {commit_sha}
  • {emoji}
  • {repo}
  • {repo_url}
  • {status_message}
  • {workflow}

You can use these to construct custom notification_title, message_format and footer. To get an idea see the workflow below.

Minimal workflow

steps:
  - uses: ravsamhq/[email protected]
    if: always()
    with:
      status: ${{ job.status }} # required
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required

Extended Example without User Mentions

steps:
  - uses: ravsamhq/[email protected]
    if: always()
    with:
      status: ${{ job.status }}
      notification_title: '{workflow} has {status_message}'
      message_format: '{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}>'
      footer: 'Linked Repo <{repo_url}|{repo}>'
      notify_when: 'failure'
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

Extended Example with User Mentions

steps:
  - uses: ravsamhq/[email protected]
    if: always()
    with:
      status: ${{ job.status }}
      notification_title: '{workflow} has {status_message}'
      message_format: '{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}>'
      footer: 'Linked Repo <{repo_url}|{repo}>'
      notify_when: 'failure'
      mention_users: 'U0160UUNH8S,U0080UUAA9N'
      mention_users_when: 'failure,warnings'
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

To get the Slack Member IDs, open the User profile you want to mention. Click More and Copy Member ID.

Extended Example with Users Groups Mentions

steps:
  - uses: ravsamhq/[email protected]
    if: always()
    with:
      status: ${{ job.status }}
      notification_title: '{workflow} has {status_message}'
      message_format: '{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}>'
      footer: 'Linked Repo <{repo_url}|{repo}>'
      notify_when: 'failure'
      mention_users: 'U0160UUNH8S,U0080UUAA9N'
      mention_users_when: 'failure,warnings'
      mention_groups: 'SAZ94GDB8'
      mention_groups_when: 'failure,warnings'
    env:
      SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

Tech Stack

Development

Follow these instructions to get the project up and running.

# clone the repo
git clone https://github.com/ravsamhq/notify-slack-action.git

# change directory
cd notify-slack-action

# setup python virtual environment
python3 -m venv venv

# activate virtual environment
source venv/bin/activate

# install pip dependencies
pip install -r requirements.txt

Versioning

This project uses SemVer for versioning. For the versions available, see the tags on this repository.

Authors

Extra

© 2021 RavSam Web Solutions