Giter Site home page Giter Site logo

techpivot / streaming-slack-notify Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 2.0 3.82 MB

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

License: MIT License

Dockerfile 0.04% TypeScript 24.08% HCL 15.84% Shell 0.22% Smarty 0.24% HTML 59.50% Ruby 0.08%
github-actions slack github-workflow typescript aws

streaming-slack-notify's Introduction

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

streaming-slack-notify's People

Contributors

varikvalefor avatar virgofx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.