Files
ci-actions/notify-all/action.yml
T
beforegolive e9ed21bd4d
lint / yamllint (push) Successful in 6m52s
feat(notify-all): 加 channels input 选择通知通道 (v1.2.0)
新 input:
  channels: 默认 'both'(同时推 Bark + 发邮件)
           可选 'bark'(只推 Bark)/ 'email'(只发邮件)

实现:composite step 加 'if' 条件
  Push to Bark:  if ${{ inputs.channels != 'email' }}
  Send email:    if ${{ inputs.channels != 'bark' }}

兼容:未传 channels 时默认 both,向后兼容 v1.1.x 用法。

README.md / docker-gitea/docs/ci-actions.md 同步更新。
2026-07-16 13:48:01 +08:00

118 lines
4.2 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
channels:
description: 'Notification channels: both (default) / bark / email'
required: false
default: 'both'
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 SHAgit 标准 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
# 默认走 bark + email (channels=both),可传 channels=bark 只推 bark / channels=email 只发邮件
- name: Push to Bark
if: ${{ inputs.channels != 'email' }}
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
if: ${{ inputs.channels != 'bark' }}
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 }}