111 lines
3.8 KiB
YAML
111 lines
3.8 KiB
YAML
name: 'Notify All'
|
||
description: 'Bark push + email in one step. Zero-config when paired with org/instance-level secrets.'
|
||
author: 'gitea_admin'
|
||
|
||
# v1.1.2 改动(2026-07-15):
|
||
# - sha 字段截短到前 10 位(git short SHA 标准)
|
||
# - 因为 input default 在 composite 开始时 evaluate,引用不到 steps.output,
|
||
# 所以把 body 从 input default 移到 step with 里(直接用 ${{ steps.short_sha.outputs.value }})
|
||
# - 删 body input —— 业务侧不能 override body;如要自定义可走 notify-bark/notify-email 直引
|
||
|
||
inputs:
|
||
status:
|
||
description: 'Build job status (caller passes ${{ needs.<job>.result }})'
|
||
required: true
|
||
title:
|
||
description: 'Notification title'
|
||
required: false
|
||
default: "[${{ github.repository }}] ${{ github.workflow }}"
|
||
email_subject:
|
||
description: 'Email subject'
|
||
required: false
|
||
default: "[gitea-ci] ${{ github.repository }} - ${{ inputs.status }}"
|
||
|
||
# ----- Bark 配置(默认走 org secret) -----
|
||
bark_device_key:
|
||
description: 'Bark device key (org secret)'
|
||
required: false
|
||
default: ${{ secrets.BARK_DEVICE_KEY }}
|
||
bark_server:
|
||
description: 'Bark server URL'
|
||
required: false
|
||
default: 'https://api.day.app'
|
||
bark_group:
|
||
description: 'Bark group'
|
||
required: false
|
||
default: 'gitea-ci'
|
||
bark_level:
|
||
description: 'Bark level'
|
||
required: false
|
||
default: 'active'
|
||
|
||
# ----- Email 配置(默认走 org secret + smtp.163.com) -----
|
||
smtp_host:
|
||
description: 'SMTP host'
|
||
required: false
|
||
default: 'smtp.163.com'
|
||
smtp_port:
|
||
description: 'SMTP SSL port'
|
||
required: false
|
||
default: '465'
|
||
smtp_user:
|
||
description: 'SMTP user (org secret)'
|
||
required: false
|
||
default: ${{ secrets.EMAIL_USER }}
|
||
smtp_pass:
|
||
description: 'SMTP auth code (org secret)'
|
||
required: false
|
||
default: ${{ secrets.EMAIL_SMTP_PASS }}
|
||
to:
|
||
description: 'Recipient(s), comma separated'
|
||
required: false
|
||
default: ${{ secrets.EMAIL_TO }}
|
||
|
||
runs:
|
||
using: 'composite'
|
||
steps:
|
||
# 1. 算 short SHA(git 标准 10 位)。Gitea 表达式没 slice/substring 函数,必须用 shell
|
||
- name: Compute short SHA
|
||
id: short_sha
|
||
shell: bash
|
||
run: |
|
||
SHA="${{ github.event.head_commit.id }}"
|
||
SHORT="${SHA:0:10}"
|
||
echo "value=${SHORT}" >> "$GITHUB_OUTPUT"
|
||
|
||
# 2. Push to Bark(链式调 sibling action,完整 URL 因为 act_runner 0.2.11 不支持 ./relative)
|
||
- name: Push to Bark
|
||
uses: http://gitea:3000/gitea_admin/ci-actions/notify-bark@v1.1.2
|
||
with:
|
||
device_key: ${{ inputs.bark_device_key }}
|
||
server: ${{ inputs.bark_server }}
|
||
title: ${{ inputs.title }}
|
||
body: |
|
||
status: ${{ inputs.status }}
|
||
branch: ${{ github.ref_name }}
|
||
commit: ${{ github.event.head_commit.message }}
|
||
sha: ${{ steps.short_sha.outputs.value }}
|
||
actor: ${{ github.actor }}
|
||
run: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||
group: ${{ inputs.bark_group }}
|
||
level: ${{ inputs.bark_level }}
|
||
|
||
# 3. Send email
|
||
- name: Send email
|
||
uses: http://gitea:3000/gitea_admin/ci-actions/notify-email@v1.1.2
|
||
with:
|
||
smtp_host: ${{ inputs.smtp_host }}
|
||
smtp_port: ${{ inputs.smtp_port }}
|
||
smtp_user: ${{ inputs.smtp_user }}
|
||
smtp_pass: ${{ inputs.smtp_pass }}
|
||
to: ${{ inputs.to }}
|
||
subject: ${{ inputs.email_subject }}
|
||
body: |
|
||
repository: ${{ github.repository }}
|
||
workflow: ${{ github.workflow }}
|
||
status: ${{ inputs.status }}
|
||
branch: ${{ github.ref_name }}
|
||
commit: ${{ github.event.head_commit.message }}
|
||
sha: ${{ steps.short_sha.outputs.value }}
|
||
url: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
||
actor: ${{ github.actor }} |