清淨
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Java

    • Java 基础
  • 框架

    • Flyway
    • MapStruct
    • Spring Cloud
  • 中间件

    • Elasticsearch
    • Redis
    • RabbitMQ
    • Kafka
  • 三剑客

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • jQuery
    • ECMAScript6
    • TypeScript
  • Vue

    • Vue2
    • Vue3
    • VuePress
  • Linux
  • Jenkins
  • Maven
  • MySQL
  • 插件工具
  • 代码集成
  • 其它

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • 设计模式
迁移日志
订阅号
微信订阅号
微信订阅号
GitHub
  • Jenkins

    • 概览
    • 安装
    • 配置
    • 插件
    • 构建类型
    • 构建触发器
    • 构建后操作
    • 参数化构建
    • Gitee 流水线

Gitee 流水线

Gitee 本身也支持流水线,在首次使用之前,我们需要开通 Gitee Go 的流水线功能。

20260829124234

Gitee Go 每个月会赠送 1000 分钟额度,对于个人用户来讲,可以满足大部分需求。开通后,就可以新建流水线了。

20260829124428

新建流水线时,需要选择模板,这里我以 Node.js 项目为例,选择 Node.js 项目模板。

20260829124512

然后选择 Node 版本,并配置构建命令。

20260829124700

接着设置打包目录,这里需要注意,需要设置成相对于项目根路径所在的打包目录。

20260829124826

然后,设置部署相关信息。在这里,我希望把打包后的产物推送到我自己的服务器上进行部署,因此,我设置了主机信息。

20260829125113

没有主机的话,需要先点击 "添加主机"(服务器需要能够访问公网)。

20260829125208

20260829125253

20260829125433

20260829125540

20260829125615

20260829125812

配置部署脚本。

20260829125847

部署脚本
APP_DIR="/usr/local/myapp/project/portal/athena"

BACKUP_NAME=""

echo "========== 开始构建:$(date '+%Y-%m-%d %H:%M:%S') =========="

echo "当前目录:$(pwd)"

cd "$APP_DIR" || { echo "无法进入 $APP_DIR"; exit 1; }

# 1. 备份
if [ -d "dist" ]; then
    BACKUP_NAME="dist.$(date +%Y%m%d%H%M%S).bak"
    mv dist "$BACKUP_NAME"
	echo "生成备份文件:$BACKUP_NAME"
fi

# 2. 解压新包
echo "解压 gitee_ops_output.tar.gz ..."
tar -zxf gitee_ops_output.tar.gz

# 3. 验证解压结果
if [ ! -d "dist" ]; then
    echo "解压后未找到 dist 目录!开始恢复备份..."
    # 恢复备份
    [ -n "$BACKUP_NAME" ] && mv "$BACKUP_NAME" dist
    exit 1
fi

echo "部署成功,dist 目录已更新"

# 4. 健康检查(失败只告警,不中断脚本)
HTTP_CODE=$(curl -I -m 5 -s -o /dev/null -w "%{http_code}" daijunfeng.com)
TIME_TOTAL=$(curl -I -m 5 -s -o /dev/null -w "%{time_total}" daijunfeng.com)

if [ "$HTTP_CODE" = "200" ]; then
    echo "服务正常!状态码:$HTTP_CODE,响应时间:${TIME_TOTAL}s"
else
    echo "警告:服务异常!状态码:$HTTP_CODE,响应时间:${TIME_TOTAL}s"
    echo "建议手动检查或回滚"
fi

echo "========== 构建完成 =========="

当然,我们也可以为每个阶段配置消息通知。

20260829130209

20260829130337

添加凭证:

20260829130510

提示

WebHook 消息内容支持 Markdown 语法,参考 钉钉Markdown。

最后,配置流水线的触发时机,然后点击右上角的保存即可。

20260829130849

20260829131008

保存后,会自动触发一次流水线。

20260829131101

配置流水线之后,代码仓库会多出一个 .workflow 目录,里面存放流水线配置文件。

20260829131920

如果配置了消息通知,那么流水线执行过程中,会自动发送消息给配置的接收人。

20260829132244

内置的消息可以在流水线中进行修改,可以配置需要发送哪些内置内容。

20260829132427

想要编辑此页?
上次更新: 2026/8/29 14:05
贡献者: Junfeng Dai
←参数化构建
[ 纸上得来终觉浅绝知此事要躬行 ]
Copyright © 2021-present Junfeng Dai
蜀ICP备2021009537号