type
status
date
slug
summary
category
tags
create_time
Jul 20, 2025 05:22 AM
icon
password
my_create_time

📝 前言

这是 DevOps 专题的第十一篇,回顾一下前几篇的内容:
这一篇我们继续介绍如何使用 Gitea Actions 来配置构建结果通知(邮件)。
PS:这一篇过后我们 DevOps 专题系列就要暂告一段落了,下一个专题主要是围绕《云原生》展开。
云原生一个很大的专题系列,到时候也会涵盖部分 DevOps,如灰度、蓝绿发布等,同时不止是局限于Gitea Action,感兴趣的同学可以持续关注哈~

🧭 背景介绍

在持续集成过程中,构建完成通知是不可或缺的一环。它能让开发者第一时间获知任务是否执行成功,及时发现问题、节省沟通成本。
而 Gitea 自带的 Actions 功能(类似 GitHub Actions)也支持在构建流程中集成自定义通知机制。
PS:这期我们主要是介绍通过dawidd6/action-send-mail进行邮件通知。

🔍 使用场景

主要适用于以下场景:
  • 希望在构建成功或失败后,自动发送邮件给开发者、测试或运维人员。
  • 需要支持自定义邮件格式和内容,包括模板渲染、条件分支等。
  • 希望在构建失败时高亮提醒,以便快速响应问题。

📋 前提条件

开始之前,请确保满足以下条件:
  • 基本了解 .gitea/workflows/*.yaml 的结构(可参看本系列的前几篇文章入门)。

🚀 详细步骤

1️⃣ 基础邮件发送配置

编写工作流文件,创建.gitea/workflows/build.yaml文件,内容参考如下:
参数说明:
  • server_address: 邮箱服务器地址,这个就不用多说了,可根据你选择的邮箱服务商填写
  • server_port: 邮箱服务端口,465 默认为安全端口
  • passowrd: 发送邮件的账号密码
  • subject: 发送邮件的主题
  • to: 发送给哪些邮件地址,这里通过 vars 变量进行引用,在下一步会介绍到如何创建变量。
  • from: 发件人的名称,可自定义如果不填就是显示发件人的邮箱地址。
  • body: 通知邮件发送的内容,这里只是简单的演示,在下面会介绍到通过模板发送的高级用法。
最终发送的只是很简单的文本内容,示例如下:

2️⃣ 创建 vars 变量

在上一步中我们介绍到了通过变量的方式动态引用接收邮件通知的人,这里我们再介绍下如何创建变量。
进入 gitea 项目 → 设置 → Actions → 变量 → 添加变量,如下图所示:
notion image
notion image
这里值填写接收人的邮箱地址,如果接收人是多个的话,可以通过逗号,分割。

3️⃣ 进阶版邮件模板发送

在上面基础用法中,我们只是简单的发送了一条通知内容,如果想要通知内容更丰富、更美观,就需要我们通过自定义的html模板来发送了,参考示例如下:
配置说明:
  • 这里我们新加了一个生成构建通知邮件模板的步骤,并传递了一些构建过程中的内置环境变量。
  • 在发送时,我们将body,替换为了html_body,使其发送的是html而不再是简单的文本内容。
最终效果如下:
notion image
需要这个模板生成器的同学可以关注公众号:青萍叙事,发送消息: 构建通知,即可获取这套工具~

4️⃣ 终极版构建状态发送

在上一步进阶版中我们也只是将发送内容美化和丰富了一下,但不能每次都是发送构建成功的通知吧,构建失败怎么办呢,这里我们就再介绍下如何根据构建状态来动态发送不同的模板内容。
参考示例如下:
配置说明:
  • 这里我们配置了2个不同的 Job,并根据if:条件进行判断,如果成功则执行notify-success失败执行notify-failure
  • 在不同的 Job 中,我们发送的模板文件也是不一样的,成功时发送的是success_scenario_email.html、失败发送failure_scenario_email.html
如果构建失败,会自动发送失败邮件,内容参考如下:
notion image
至此我们的构建邮件通知基本已经配置完成了,可用于生产使用~

✅ 总结

最后总结一下,通过本文介绍,您应该学会了:
  • 如何通过 Gitea Actions 构建后发送邮件通知。
  • 如何创建配置并引用 Action 变量。
  • 如何发送文本及 html 高级通知邮件。
  • 如何根据构建成功/失败动态发送不同邮件。
邮件虽然传统,但依旧是 DevOps 自动化中不可替代的一环,尤其适合需要流程可追溯、记录完备的团队环境。
当然您也可以拓展改用钉钉、飞书或企业微信进行通知,这就不在本文的介绍范围内了。
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
 
上一篇
使用 Samba 搭建 Mac 时间机器备份指南
下一篇
网站”日常瞬间”开源说明

评论
Loading...