All Projects → bitoiu → release-notify-action

bitoiu / release-notify-action

Licence: MIT License
GitHub Action that triggers e-mails with release notes when these are created

Programming Languages

javascript
184084 projects - #8 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to release-notify-action

Play Mailer
Play mailer plugin
Stars: ✭ 243 (+279.69%)
Mutual labels:  mailer, email-sender
github-release
Github Action to create, update, or add files to Github Releases
Stars: ✭ 61 (-4.69%)
Mutual labels:  github-releases, github-actions
action-sync-node-meta
GitHub Action that syncs package.json with the repository metadata.
Stars: ✭ 25 (-60.94%)
Mutual labels:  workflow, github-actions
Stampie
Library for using online Email providers
Stars: ✭ 282 (+340.63%)
Mutual labels:  mailer, sendgrid
mailer
Generic mailer
Stars: ✭ 16 (-75%)
Mutual labels:  mailer, email-sender
Airform
Functional HTML forms for Front-End Developers.
Stars: ✭ 307 (+379.69%)
Mutual labels:  mailer, sendgrid
Github Pages Deploy Action
Automatically deploy your project to GitHub Pages using GitHub Actions. This action can be configured to push your production-ready code into any branch you'd like.
Stars: ✭ 2,507 (+3817.19%)
Mutual labels:  workflow, github-actions
ci-notice
😱 Notify you when CI fails.
Stars: ✭ 25 (-60.94%)
Mutual labels:  workflow, github-actions
Meteor-Mailer
📮 Bulletproof email queue on top of NodeMailer with support of multiple clusters and servers setup
Stars: ✭ 21 (-67.19%)
Mutual labels:  mailer, email-sender
travis-ci-latex-pdf
Overview of different methods to build LaTeX with GitHub Actions or Travis-CI (idea by @jackolney but completely rewritten by @PHPirates and contributors).
Stars: ✭ 113 (+76.56%)
Mutual labels:  github-releases, github-actions
Mailer
A light-weight, modular, message representation and mail delivery framework for Python.
Stars: ✭ 225 (+251.56%)
Mutual labels:  email-sender, sendgrid
content-reminder
⏰ A GitHub Action that reminds you to share your own content
Stars: ✭ 28 (-56.25%)
Mutual labels:  sendgrid, github-actions
Omnimail
Send email across all platforms using one interface
Stars: ✭ 325 (+407.81%)
Mutual labels:  email-sender, sendgrid
Sendgrid Mailer
Provides Sendgrid integration for Symfony Mailer
Stars: ✭ 24 (-62.5%)
Mutual labels:  mailer, sendgrid
sentry-releases-action
A GitHub action that creates releases for Sentry.io.
Stars: ✭ 38 (-40.62%)
Mutual labels:  github-releases, github-actions
zaqar
Email microservice writen in Node.js
Stars: ✭ 52 (-18.75%)
Mutual labels:  email-sender, sendgrid
drupal9ci
One-line installers for implementing Continuous Integration in Drupal 9
Stars: ✭ 137 (+114.06%)
Mutual labels:  workflow, github-actions
megalinter
🦙 Mega-Linter analyzes 48 languages, 22 formats, 19 tooling formats, excessive copy-pastes, spelling mistakes and security issues in your repository sources with a GitHub Action, other CI tools or locally.
Stars: ✭ 534 (+734.38%)
Mutual labels:  github-actions
ghaction-import-gpg
GitHub Action to easily import a GPG key
Stars: ✭ 161 (+151.56%)
Mutual labels:  github-actions
simpleflow
Python library for dataflow programming.
Stars: ✭ 67 (+4.69%)
Mutual labels:  workflow

release-notify-action

This repo contains a re-usable GitHub Action that when installed sends an e-mail to a distribution list with the release note contents every time a GitHub Release is created for the repository.

This Action makes use of SendGrid's API to send the e-mails.

Pre-requisites

To run this action you'll need:

  • To be part of the Actions beta. Note that during the beta, Actions will only run on private repositories.
  • A SendGrid API Key. SendGrid is free to up 100 e-mails a day so feel free to register and get your API KEY.
  • A text file hosted anywhere with the list of e-mail recipients. I personally use GitHub Gists and get the link of the raw file.

Setup

1. Create the release workflow

Add a new workflow to your .github/main.workflow to trigger on release.

new-workflow

2. Create the Action

Create an action that uses this repository bitoiu/release-notify-action@master or points to Docker Hub at docker://bitoiu/release-notifiy-action

new-action

3. Set the SendGrid secret

Using the Visual Editor create a new secret on the action named SENDGRID_API_TOKEN. Set the value to your SendGrid API Key.

new-secret

4. Set the RECIPIENTS secret

Do the same for a secret named RECIPIENTS that you need to set to the URI of the text file with the target recipients. The contents of the file should be a list of e-mails separated by newline, for example:

If you don't know where to host this file, just go to GitHub Gists and create a new textfile with the e-mails you want to target. After you save the file just click raw and get the URI of the file you've just created.

5. Commit the changes

Make sure you commit all pending changes. After you've done that your main.workflow should look similar to this:


workflow "Release Notifier" {
  on = "release"
  resolves = ["Notify Releases"]
}

action "Notify Releases" {
  uses = "bitoiu/release-notify-action@master"
  secrets = ["SENDGRID_API_TOKEN", "RECIPIENTS"]
}

On the visual editor it should look similar to this:

visual editor

6. Test the workflow!

Create a new release for your repository and verify that the action triggers and that the e-mails were sent. Sometimes it's worth checking the spam inbox.

Local testing

The main script that does the heavy lifting is a NodeJS file. As such you can simply test it like any other node program, for example, running the following inside the src folder:

SENDGRID_API_TOKEN=XXX RECIPIENTS=ABSOLUTE_PATH_TO_TXT_FILE_WITH_RECIPIENTS GITHUB_EVENT_PATH=ABSOLUTE_PATH_TO_SAMPLE_PAYLOAD_FILE_PROVIDED node notify.js

If you prefer to test the container directly (which is a tiny bit slower but more reliable) you can just run something like:

docker build -t release . && docker run --env-file=./env release

Be sure to rename env.template to env and fill it with your environment variables.

Pull Requests and Issues are Welcome

If you're thinking of a dynamic e-mail template with substitutions, configurable TO and FROM addresses then you're just a pull request away. Feel free to share your ideas.

:octocat:❤️

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].