2015-12-04 29 views
2

我正在寻找执行CI/CD到我目前的项目这里是我认为会工作。CI和CD执行问题

环境包括 - 詹金斯 - 蹦 - 泊坞窗 - gradle这个 - Linux服务器 - 声纳 - Ansible。

将使用每个工具如下。

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

    工作流程将是他的机器上

  • 用户运行单元测试用例和代码提交到服务器。

  • 詹金斯将从git中提取代码,并将运行声呐并生成报告。
  • jenkins将创建构建并将部署在dev服务器上。
  • jenkins作业将运行并将在dev服务器上执行集成测试
  • 可以运行任何其他自动化测试。
  • 最终构建使用Jenkins推送到下一个服务器。
  • 我将在Jenkins内部使用shell命令将编译后的代码从一台服务器推送到另一台服务器。

    在我的这种情况下,可以有人回答我下面。

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

  • 我看到有CD工具,不能将编译后的代码推送到使用Jenkins作业内部编写的shell脚本来自动部署事物的服务器上? CD工具提供什么额外好处
  • 明智地创建新的测试环境还是我们可以一直使用旧的测试环境?
  • 这个完整的CI/CD?

    可有人份额有执行

回答

3

你说你打算使用Git的。我会在GitHub上勾勒使用Git的情景

  1. 开发商推这里代码变化引入请求
  2. SonarQube GitHub Plugin揭开序幕的PR改变只有代码进行初步分析,寻找引进的新问题(注意,覆盖面和重复不包括在此检查)
  3. 一旦PR合并,詹金斯(在一个工作或几种,根据您的需要)
    • 建立
    • 火灾集成测试&任何其他自动化测试
    • 运行SonarQube扫描。请注意,这最后会包含集成测试结果。
    • 推动建立到下一个服务器

需要注意的是,打破该项目时没有通过SonarQube质量门你已经建立构建的能力可能是在您的情况理想。不幸的是,它在当前的服务器版本中不可用:5.2。它在5.1中可用,应该返回soon