GitHub Action
Microsoft Teams Deploy Card
A comprehensive notification card in Microsoft Teams for your deployments.
- Add
MS_TEAMS_WEBHOOK_URI
on your repository's configs on Settings > Secrets. It is the webhook URI of the dedicated Microsoft Teams channel for notification.
- Add a new
step
on your workflow code belowactions/checkout@v2
:
name: MS Teams Deploy Card
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- if: always()
# this is the new step
- uses: toko-bifrost/ms-teams-deploy-card@master # or "./" if in a local set-up
with:
github-token: ${{ github.token }}
webhook-uri: ${{ secrets.MS_TEAMS_WEBHOOK_URI }}
Name | Required | Default | Description |
---|---|---|---|
github-token |
true |
None | This can be set to the following: - ${{ github.token }} - ${{ secrets.GITHUB_TOKEN }} - ${{ secrets.CUSTOM_TOKEN }} |
webhook-uri |
true |
None | The value of MS_TEAMS_WEBHOOK_URI |
environment |
false |
None | Name of the environment, e.g. development , production (won't be included in the card if none) |
timezone |
false |
UTC |
A valid database timezone name, e.g. Australia/Sydney |
card-layout-start |
false |
complete |
Card layout on start (i.e. complete , cozy , compact ) |
card-layout-exit |
false |
compact |
Card layout on exit (i.e. complete , cozy , compact ) |
show-on-start |
false |
true |
Show an MS Teams card upon starting this Github Actions job |
show-on-exit |
false |
true |
Show an MS Teams card upon exiting this Github Actions job, regardless if it's a successful or a failed exit |
show-on-failure |
false |
false |
Show an MS Teams card upon exiting this Github Actions job and status is FAILURE ; This will override any boolean value of show-on-exit , e.g. with show-on-exit=false and show-on-failure=true , the notification card will still proceed upon job failure |
custom-facts |
false |
null |
YAML-parseable string defining a list of objects with name and value to display alongside existing facts. Only for complete layout. |
include-files |
false |
true |
Include the list of files when layout is set to complete |
allowed-file-len |
false |
7 |
Allowed number of changed files to display, when include-files is set to true |
- Clone this repository.
- Install JS dependencies via
yarn install
ornpm install
. - Before pushing you changes, execute
yarn ncc
(ornpm run ncc
) to create a build ondist
. - Do not remove the
dist
repository. Ever. - Check the Actions tab for the errors if there are any.
-
Avoid naming your secrets with the prefix
GITHUB_
as secrets are being used as environment variables, and they are reserved for Github Actions' use only. Better stick withCI_GITHUB_TOKEN
. -
As this is still in development, always use the working latest version from the
Releases
, as they have more bug fixes and added features. -
If you are going to set
custom-facts
with thecomplete
layout, look out for the pipe symbol (|
). Github Actions only acceptstring
,number
, andboolean
as parameters on job steps. To bypass this restriction and to instill YAML list formatting, we have to set it with a YAML-parseable multiline string containing a YAML list of objects withname
andvalue
. If there is an error in YAML parsing, no custom facts will be appended to the table.
- uses: toko-bifrost/ms-teams-deploy-card@master
with:
github-token: ${{ github.token }}
webhook-uri: ${{ secrets.MS_TEAMS_WEBHOOK_URI }}
custom-facts: |
- name: Custom Fact 1
value: Random URL maybe
- name: Pull Request
value: http://example.com/${{ github.run_id }}
-
Always set this job with
if: always()
when there are steps betweenactions/checkout@v2
and this job. -
As much as possible, always set this Github action right after
actions/checkout@v2
and before any job steps. The following diagram shows when this job if going to trigger if done the right way.
job
|-- actions/checkout@v2
|-- ms-teams-deploy-card (fires notification of job initiation, if allowed)
|-- step 1
|...more steps
|-- step N
|-- post ms-teams-deploy-card
* checks the conclusion based on the previous completed steps
* fires notification if allowed in the settings
|-- post actions/checkout@v2