Actively maintained by TechPivot and the community.
Workflow Queued | Workflow Running | Workflow Complete |
---|---|---|
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.
- 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
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. Slack App
-
First, install the Streaming Slack Notify application in your Slack workspace using the Add to Slack button.
-
Copy the Streaming Slack App ID displayed in the green box (Required in GitHub Post-Install Configuration)
2. GitHub App
- Navigate to the Streaming Slack Notify GitHub application
- Click Install in the upper right corner
- Select the organization or user account to install the app
- Select which repositories you want to configure streaming Slack notifications for - Either all or a defined list
- Click Install
-
On the GitHub post-install configuration page, paste the token generated in the Slack app registration into the Streaming Slack App ID
-
Specify the Slack Channel for which live workflow notifiations should be displayed
-
Optionally, you can override the default Slack Bot Username that posts the messages in the channel. (Default = GitHub Actions)
-
Click Update to save and link your settings
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
We greatly appreciate donations to help fund our AWS infrastructure costs. Additionally, we ♥ GitHub stargazers and members in our Slack community.
MIT © 2021 TechPivot
TechPivot · GitHub @techpivot · LinkedIn techpivot · Twitter @techpivot