Skip to content

The definitive service for streaming GitHub action workflow jobs to Slack.

License

Notifications You must be signed in to change notification settings

techpivot/streaming-slack-notify

Repository files navigation

TechPivot Streaming Slack Notifier Logo

Streaming Slack Notify

The definitive service for streaming GitHub action workflow jobs to Slack.

Actively maintained by TechPivot and the community.

slack

Live Slack Workflow

Screenshots

Workflow Queued Workflow Running Workflow Complete

Motivation

The existing GitHub actions that post to Slack were only displayed at the conclusion of workflow runs, which results in ambiguous job status for long-running workflows. Additionally, existing actions contained limited information and often prioritized the wrong data elements. This service attempts to solve those issues by registering the Streaming Slack Notify GitHub and Slack applications, linking them together, and polling workflow runs via a lightweight cloud-native and cost-optimized service.

Features

  • Fully open-source including entire AWS infrastructure, API endpoints, and server poller
  • Ability to display job step status from beginning of workflow to end
  • Single slack message that continuously updates the current job statuses
  • Support for push, pull_request, schedule events
  • Clean and consistent Slack UI
  • Lightweight, minimal dependencies, and pure TypeScript
  • Lean AWS cloud footprint that utilizes free tier services and cost-optimized services

Installation

Note: You must register your Slack workspace first prior to installing this application as your Slack app ID token is required in the GitHub App Post-Install Configuration.

  1. First, install the Streaming Slack Notify application in your Slack workspace using the Add to Slack button. Add to Slack

  2. Copy the Streaming Slack App ID displayed in the green box (Required in GitHub Post-Install Configuration)

  1. Navigate to the Streaming Slack Notify GitHub application
  2. Click Install in the upper right corner
  3. Select the organization or user account to install the app
  4. Select which repositories you want to configure streaming Slack notifications for - Either all or a defined list
  5. Click Install

Post-Install Configuration

  1. On the GitHub post-install configuration page, paste the token generated in the Slack app registration into the Streaming Slack App ID

  2. Specify the Slack Channel for which live workflow notifiations should be displayed

  3. Optionally, you can override the default Slack Bot Username that posts the messages in the channel. (Default = GitHub Actions)

  4. Click Update to save and link your settings

Infrastructure Notes

The current infrastructure is deployed in a dedicated AWS account that is actively managed by TechPivot. In order to provide a public service such as this, various parts of the infrastrucure are cost-optimized including:

  • Utilizing EC2 Spot instances in a fleet with capability to handle interruption
  • Minimizing the number of EC2 metrics
  • Graviton arm64 instances yielding further cost savings
  • Custom reduced EBS root volume sizes (4GB instead of 30GB)
  • Utilizing various AWS free tier services including DynamoDB, Lambda, and API Gateway

Support

We greatly appreciate donations to help fund our AWS infrastructure costs. Additionally, we ♥ GitHub stargazers and members in our Slack community.

License

MIT © 2021 TechPivot


TechPivot  ·  GitHub @techpivot  ·  LinkedIn techpivot  ·  Twitter @techpivot