Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
bell

GitHub Action

Microsoft Teams Deploy Card

3.1.0

Microsoft Teams Deploy Card

bell

Microsoft Teams Deploy Card

Notify your Teams channel with a beautiful, comprehensive deployment card

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Microsoft Teams Deploy Card

uses: toko-bifrost/[email protected]

Learn more about this action in toko-bifrost/ms-teams-deploy-card

Choose a version

Microsoft Teams Deploy Card

MS Teams Deploy Card

A comprehensive notification card in Microsoft Teams for your deployments.

Layouts

Complete

Cozy

Compact

Usage

  1. 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.
  1. Add a new step on your workflow code below actions/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 }}

Configurations

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

Local Set-up

  1. Clone this repository.
  2. Install JS dependencies via yarn install or npm install.
  3. Before pushing you changes, execute yarn ncc (or npm run ncc) to create a build on dist.
  4. Do not remove the dist repository. Ever.
  5. Check the Actions tab for the errors if there are any.

Known Issues

  • 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 with CI_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 the complete layout, look out for the pipe symbol (|). Github Actions only accept string, number, and boolean 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 with name and value. 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 between actions/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