CI和CD实施问题

时间:2015-12-04 04:45:21

标签: docker continuous-integration sonarqube ansible

我正在寻找CI / CD在我当前项目中的实现,这是我认为可行的。

环境包含 - 詹金斯 - git - 码头工人 - gradle - Linux服务器 - 声纳 - Ansible。

每个工具都将使用如下。

  • Git: - 开发人员会将代码推送到此CVS。
  • Jenkins: - 检测签入时Jenkins将触发构建并将部署到其中一个服务器。
  • 声纳: - 将用于代码覆盖,并将在通过Jenkins构建代码之前检查代码。
  • ansible: - ansible将用于快速准备添加的节点,以便可以将代码部署到它们。
  • 如果我们每次都可以使用docker + ansible组合来完成这些事情,我们需要新的测试环境。

    工作流程

  • 用户在他的机器上运行单元测试用例并将代码提交给服务器。

  • Jenkins将从git中提取代码并在同一时间运行声纳并生成报告。
  • jenkins将创建构建并将在开发服务器上部署相同的内容。
  • jenkins作业将运行并将在开发服务器上执行集成测试
  • 可以运行任何其他自动化测试。
  • 最后使用Jenkins将构建推送到下一个服务器。
  • 我将在Jenkins中使用shell命令将已编译的代码从一个服务器推送到另一个服务器。

    在我的这个场景中,有人可以回答我的问题。

  • 声纳哪里适合以及如何使用?

  • 我看到有CD工具,我不能使用在Jenkins作业中编写的shell脚本将编译后的代码推送到服务器以自动部署这些东西? CD工具提供的额外好处
  • 创建新的测试环境是明智的还是我们可以一次又一次地使用旧测试环境?
  • 这是完整的CI / CD吗?

    有人可以分享实施

1 个答案:

答案 0 :(得分:3)

你说你打算用Git。我将在GitHub上使用Git概述一个场景

  1. 开发人员在此处推送代码更改作为拉取请求
  2. SonarQube GitHub Plugin启动了对仅在PR 中更改的代码的初步分析,以寻找新问题的介绍(请注意,覆盖率和重复是不包括在此支票中)
  3. 一旦PR合并,Jenkins(根据您的需要,在一个或多个工作中)
    • 构建
    • 点火集成测试&任何其他自动化测试
    • 运行SonarQube Scan。请注意,最后这包括集成测试结果。
    • 将构建推送到下一个服务器
  4. 请注意,在您的情况下,可能需要在项目未通过您设置的SonarQube质量门时中断构建的能力。不幸的是,它在当前的服务器版本中不可用:5.2。它在5.1中可用,应返回soon