首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CICD-coding

CICD-coding

原创
作者头像
二木
修改2022-05-24 17:29:34
1.5K0
修改2022-05-24 17:29:34
举报
文章被收录于专栏:上云实践案例上云实践案例

词汇说明

CI/CD

CI的英文名称是Continuous Integration,中文翻译为:持续集成。

CD可对应多个英文名称,持续交付Continuous Delivery和持续部署Continuous Deployment。

需求说明

在前面的文章介绍了我们的技术选型,程序的运行方式选择了基于TKE的TSF微服务框架,我们需要将程序制成docker镜像。作为敏捷小团队想要做到快速部署,自动化工具少不了,我们选择了coding, coding 是免费的一站式开发协作工具,流水线完全兼容jenkins,支持代码托管、持续集成、持续部署。

coding构建流程
coding构建流程

CI 过程

可根据各自的项目特点,选项合适的模版来创建构建计划,参考coding 快速开始, 构建计划主要用来持续集成,每次提交代码后触发流水线进行构建:

  1. 拉取最新代码
  2. 执行代码检查
  3. 执行测试用例(单元、接口、UI等测试用例)
  4. 收集测试报告
  5. 构建物推送到coding镜像仓库。
    image.png
    image.png

Dockfile 文件

我们使用的golang语言,tsf官方帮助文档有介绍Go 应用接入 TSF, 其中dockerfile文件是生成镜像的关键:

FROM centos:7
RUN echo "ip_resolve=4" >> /etc/yum.conf
#RUN yum update -y && yum install -y ca-certificates
# 设置时区。这对于日志、调用链等功能能否在 TSF 控制台被检索到非常重要。
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
ENV workdir /app/
# provider go程序编译的可执行文件
COPY provider ${workdir}
WORKDIR ${workdir}

# tsf-consul-template-docker  用于文件配置功能,如不需要可注释掉该行
ADD tsf-consul-template-docker.tar.gz /root/
# JAVA_OPTS 环境变量的值为部署组的 JVM 启动参数,在运行时 bash 替换。如果加了${JAVA_OPTS},需要在TSF的容器部署组启动参数中删除默认的"-Xms128m xxx"参数,否则会启动失败
#使用 exec 以使 Java 程序可以接收 SIGTERM 信号。
CMD ["sh", "-ec", "exec ${workdir}provider ${JAVA_OPTS}"]

CD 过程

coding持续部署打通了腾讯云账号和腾讯云API,也支持TSF模式部署, 参考文档:https://help.coding.net/docs/cd/overview.html。 当在腾讯云TSF控制台创建好tsf集群,应用、部署组之后,可以在coding配置持续部署流程。

  1. 到coding部署控制台,创建应用选择TSF部署(应用名称注意用数字英文和下划线)
    image.png
    image.png
  2. 创建空白流程
  3. 配置基础配置:这一步选择对应的触发器,要选择CI过程中上传的镜像仓库、镜像名称等。
    image.png
    image.png
  4. 选择TSF容器部署
    image.png
    image.png
  5. 选择制品来源
    image.png
    image.png
  6. 选择tsf仓库和部署组(注意云账号要提前配置好)
    image.png
    image.png

总结

上面的CI和CD流程配置完成之后,即可以从代码提交后触发:代码检查、单元测试、构建镜像、推送镜像到tsf仓库并自动部署到TSF.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 词汇说明
    • CI/CD
    • 需求说明
    • CI 过程
      • Dockfile 文件
      • CD 过程
      • 总结
      相关产品与服务
      CODING DevOps
      CODING DevOps 一站式研发管理平台,包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档