承接 vijaycs85/notify-teams 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

vijaycs85/notify-teams

Composer 安装命令:

composer require vijaycs85/notify-teams

包简介

Reusable MS Teams notification helper scripts for Azure container startup flows

README 文档

README

Send deployment and container startup notifications to Microsoft Teams using Adaptive Cards. Works in two modes — as a GitHub Action for CI/CD pipeline events, or as a shell script for Azure container startup flows.

First time? Follow SETUP.md to create your Teams Incoming Webhook URL.

Mode 1 — GitHub Action (Deployment Events)

Use this in your GitHub Actions workflows to notify Teams when a deployment starts, succeeds, or fails.

Inputs

Name Description Required Default
teams_webhook_url MS Teams Incoming Webhook URL
status start, success, or failure
environment Target environment (e.g. dev, stg, prod)
project_name Friendly project name shown on the card ${{ github.repository }}
environment_url URL of the deployed environment — adds an Open environment button
message Optional extra detail shown on the card

Environment display names

Short codes are automatically mapped to friendly labels:

Input Displayed as
dev / development Development
stg / stage / staging Staging
prod / production Production
anything else Capitalised as-is

Basic usage — notify on start and completion

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Notify Teams — Deployment started
        uses: vijaycs85/notify-teams@v1
        with:
          teams_webhook_url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
          status: start
          environment: ${{ inputs.environment }}
          project_name: My App

      # ... your deployment steps ...

      - name: Notify Teams — Deployment result
        if: always()
        uses: vijaycs85/notify-teams@v1
        with:
          teams_webhook_url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
          status: ${{ job.status }}
          environment: ${{ inputs.environment }}
          project_name: My App
          environment_url: https://my-app-${{ inputs.environment }}.example.com
          message: Deployed by ${{ github.actor }} from branch ${{ github.ref_name }}

Recommended pattern — reusable notification workflow

Define a shared notification workflow once and call it from all your deployment workflows.

.github/workflows/notify.yml (in your project repo):

name: Notify Teams

on:
  workflow_call:
    inputs:
      status:
        required: true
        type: string
      environment:
        required: true
        type: string
      environment_url:
        required: false
        type: string
        default: ''
      message:
        required: false
        type: string
        default: ''
    secrets:
      MS_TEAMS_WEBHOOK_URL:
        required: true

jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - uses: vijaycs85/notify-teams@v1
        with:
          teams_webhook_url: ${{ secrets.MS_TEAMS_WEBHOOK_URL }}
          status: ${{ inputs.status }}
          environment: ${{ inputs.environment }}
          environment_url: ${{ inputs.environment_url }}
          message: ${{ inputs.message }}

Calling it from a deployment workflow:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      # ... your deployment steps ...

  notify:
    needs: deploy
    if: always()
    uses: ./.github/workflows/notify.yml
    secrets: inherit
    with:
      status: ${{ needs.deploy.result }}
      environment: production
      environment_url: https://my-app.example.com

Mode 2 — Shell Script (Azure Container Startup Events)

Use this when your Azure Container App (or any server) needs to post Teams cards on restart, successful startup, or startup failure — independently of GitHub Actions.

Install via Composer

Add this package to your project and configure it to install into your .azure/ directory:

In your project's composer.json:

{
  "require": {
    "vijaycs85/notify-teams": "^1.0"
  },
  "extra": {
    "installer-paths": {
      ".azure/notify-teams/": ["vijaycs85/notify-teams"]
    }
  }
}

Then install:

composer require vijaycs85/notify-teams

The scripts will be available at .azure/notify-teams/scripts/notify_teams.sh.

Required environment variables

Set these in your Azure Container App configuration (or equivalent):

Variable Description Required
TEAMS_WEBHOOK_URL MS Teams Incoming Webhook URL
ENVIRONMENT Environment name (e.g. dev, staging, prod)
WEBSITE_SITE_NAME Auto-set by Azure — used as the container identifier
PROJECT_NAME Friendly project name — falls back to WEBSITE_SITE_NAME
ENV_URL URL shown as a link and button on the card

Statuses

Status Card colour Meaning
restart 🟡 Warning Container has restarted, startup beginning
success 🟢 Good All startup steps completed
failure 🔴 Attention A startup step failed

Integrate into your startup script

Create .azure/startup.sh in your project (or update your existing one):

#!/bin/bash
set -euo pipefail

# Load the Teams notification helper
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/notify-teams/scripts/notify_teams.sh"

# Send failure card automatically on any error
trap 'notify_teams failure "Script failed at line $LINENO. Check container logs."' ERR

# Notify: container has restarted, startup is beginning
notify_teams restart "Container startup initiated."

# ---------------------------------------------------------------------------
# Your application startup steps go here, for example:
#
#   php artisan migrate --force
#   php artisan cache:clear
#   composer install --no-dev --optimize-autoloader
# ---------------------------------------------------------------------------

# Notify: all steps succeeded
notify_teams success "All startup steps completed. Application is ready."

Configure the startup script in Azure

In your Azure Container App, set the startup command to:

/bin/bash /home/site/wwwroot/.azure/startup.sh

Or in azure.yaml / Bicep:

startupCommand: /bin/bash /home/site/wwwroot/.azure/startup.sh

统计信息

  • 总下载量: 46
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: Shell

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固