Actions Status Discord
Post GitHub Actions status to Discord as an beautiful embed
🍣 Zero-configuration! Works perfectly out of the box.🍣 OS-agnostic! Supports Linux (Ubuntu), macOS and Windows runners.🍣 Fast startup! Faster than ones written as Docker container action.
⚠️ If you're reading this document in master branch, please refer to the latest released document here.
Usage
Minimum
- uses: sarisia/actions-status-discord@v1
if: always()
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
Full options
- uses: sarisia/actions-status-discord@v1
if: always()
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
content: "Hey <@316911818725392384>"
title: "deploy"
description: "Build and deploy to GitHub Pages"
image: ${{ secrets.EMBED_IMAGE }}
color: 0x0000ff
url: "https://github.com/sarisia/actions-status-discord"
username: GitHub Actions
avatar_url: ${{ secrets.AVATAR_URL }}
No detail
- uses: sarisia/actions-status-discord@v1
if: always()
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
with:
nodetail: true
title: "We did it!"
color: 0xff91a4
For if
parameter, see
GitHub Actions Reference
Configuration
Environment Variables
Key | Value | Description |
---|---|---|
DISCORD_WEBHOOK | Discord webhook endpoind like:https://discordapp.com/api/webhooks/... |
You can provide webhook via inputs either. DO NOT APPEND /github SUFFIX! |
Inputs
General customizations
Key | Required | Value | Default | Description |
---|---|---|---|---|
webhook | No | String | env.DISCORD_WEBHOOK |
Discord webhook endpoind like:https://discordapp.com/api/webhooks/... This overrides env.DISCORD_WEBHOOK .DO NOT APPEND /github SUFFIX! |
status | No | Success , Failure or Cancelled |
${{ job.status }} |
See Document for job context |
content | No | String | Content. Shown as an message outside of the embed. See Mention to user/role | |
title | No | String | ${{ github.workflow}} |
String included in embed title. Overrides job input. |
description | No | String | Description included in message | |
image | No | String | Image attached to the message | |
color | No | Hex string like: 0xFFFFFF |
Overrides Discord embed color | |
url | No | String | URL to jump when the title is clicked | |
username | No | String | Overrides Discord webhook username | |
avatar_url | No | String | Overrides Discord webhook avatar url |
Advanced usages
Key | Required | Value | Default | Description |
---|---|---|---|---|
nofail | No | true or false |
true |
This action won't make workflow failed by default. If set to false , this action will set status failed when failed to notify. |
nocontext | No | true or false |
false |
Set true to suppress GitHub context fields (Repository , Ref , etc). |
noprefix | No | true or false |
false |
Set true to avoid appending job status (Success: , etc.) to title |
nodetail | No | true or false |
false |
Set true will set both nocontext and noprefix to true |
notimestamp | No | true or false |
false |
Set true to avoid appending timestamp |
Show deprecated
Key | Required | Value | Default | Description |
---|---|---|---|---|
job | No | String | Deprecated. Will be removed in v2 Job name included in message title. Same as title input. |
Tips
Using markdown
Some fields support markdown syntax.
- uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
nodetail: true
title: New version of `software` is ready!
description: |
Version `1.2.3-alpha`
Click [here](https://github.com/sarisia/actions-status-discord) to download!
Mention to user/role
Since @mention
inside the embed does not generate ping to users,
you can use content
input to mention users/roles:
- uses: sarisia/actions-status-discord@v1
if: always()
with:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
content: "Hey <@316911818725392384>"
See the Discord Developer Docs for available formats.
Trigger multiple webhooks
You can set multiple webhooks separated with EOL (line break, \n
) to Secrets.
For example, set Secrets to:
https://discordapp.com/api/webhooks/...
https://media.guilded.gg/webhooks/...
https://this-is-invalid-webhook-endpoint.invalid/...
will trigger these 3 webhooks simultaneously.
If some of these webhooks are failed, other deliveries will NOT be cancelled.
If the option nofail
is set to false
and any of one fail, the action will set
workflow status to Failure
.
GHES, Gitea and Forgejo
This actions may work with GHES, Gitea and Forgejo, but not tested against yet.
If you have any issues, please let us know in Discussions or Issues.
Guilded webhook support
As Guilded supports Discord Webhooks API, you can use Guilded webhook endpoint in the same way as Discord webhook.
FAQ
Error: Webhook response: 400: {"sender":["This field is required"]}
Do not append /github
suffix to your webhook URL. See Inputs section.
Questions? Bugs?
Feel free to ask in Discussions, or report bugs in Issues!