云原生构建Cloud Native Build
cnb 构建项目 demo
- 支持自定义构建环境
- 支持部署到服务器
- 支持发送构建结果通知
可拓展前后端项目
仓库地址
https://cnb.cool/passerma/cnb-build-demo
配置文件
yaml
main:
push:
- name: "构建 $CNB_REPO_NAME"
imports:
- https://cnb.cool/your-repo-slug/-/blob/main/xxx/envs.yml
docker:
build: .cnb/Dockerfile # 使用 Dockerfile 构建
env:
BUILD_MSG: "" # 编译信息
INDEX_PATH: "/home/" # 部署路径
# 这里写你的编译步骤
stages:
- name: 编译前端文件
script: |
npm install
npm run build
- name: 部署到服务器
script: |
sshpass -p "$REMOTE_PASS" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$REMOTE_USER@$REMOTE_ADDR" "mv $INDEX_PATH/index $INDEX_PATH/index_$(date +%Y%m%d%H%M%S)"
sshpass -p "$REMOTE_PASS" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -r dist "$REMOTE_USER@$REMOTE_ADDR:$INDEX_PATH/index"
# 编译完成发送消息
endStages:
- name: 生成构建消息
exports:
info: BUILD_MSG
script: |
MSG=$([ "$CNB_PIPELINE_STATUS" = "success" ] && echo "成功" || echo "失败, 原因: $CNB_BUILD_FAILED_MSG, 步骤: $CNB_BUILD_FAILED_STAGE_NAME")
echo "$CNB_BUILD_USER 构建 $CNB_REPO_NAME $MSG"
- name: 发送构建消息
image: tencentcom/dingtalk-msg:latest
settings:
content: $BUILD_MSG
to: $DINGTALK_USER
c_type: "text"
appKey: $DINGTALK_APPKEY
appSecret: $DINGTALK_APPSECRET
agentId: $DINGTALK_AGENTID