git CI / CD工作流示例

rlcwz9us  于 2023-05-05  发布在  Git
关注(0)|答案(1)|浏览(158)

我试图通过描绘从开发环境到生产环境的代码更改的逻辑步骤序列来更清晰地理解git和jenkins。如果有人能让我知道我的理解是否正确,我将不胜感激。
为了保持场景的简单性,一家公司的网站只包含一个index.html文件;并且此网站托管在3个独立的EC2示例上:'Dev'、'Test'和'Prod',每个都运行Apache。Jenkinsfile有'build'、'test'和'deploy'阶段。此公司决定更新index.html。这就是我目前理解的这样一系列步骤可能“理论上”发挥作用的方式:

a)from a git context:

1.开发人员将远程存储库的开发分支克隆/拉取/获取(共享)到本地IDE
1.开发人员更新index.html,然后将此更改暂存/提交到其本地存储库
1.开发人员将更改从本地存储库推送到开发分支的远程存储库
1.开发人员创建pull request,以寻求协作批准,以便将其新推送的dev分支更改合并到master分支中

B)从Jenkins上下文:

  1. git dev分支存储开发和测试EC2示例所需的所有源代码/配置(假设没有ISO/二进制文件),而git master branch存储生产环境的等效内容。
    1.在代码更改后,git dev分支将存储更多的pregressed源代码/配置到master分支,直到dev分支合并到master分支,这意味着已经部署了生产环境的发布。
  2. jenkins build stage在提交链接的repo /分支时触发,并将有一个步骤将最新的index.html从git复制到EC2 'test' env,然后可能循环Apache服务,如果成功,将管道执行向前传递到jenkins test stage。
  3. jenkins测试阶段将运行一个预定义的Selenium脚本来检查localhost:80是否有index.html的一些已知的innerhtml文本,如果成功,将把管道执行向前传递到jenkins部署阶段。
  4. jenkins deploy stage将从dev分支到master分支运行git merge,如果成功,将从master分支复制结果index.html到生产EC2示例。
    谢谢你的想法!
wf82jlnq

wf82jlnq1#

可以有多个选项,理想情况下,代码将被合并到主一旦其在生产验证。
开发团队将创建一个功能/开发分支来进行更改(从master/ci(持续集成/开发)分支)。
在dev分支中进行更改,通过将开发的代码部署到较低的/dev环境中来验证更改。
创建一个Pull请求以将代码合并到CI分支将代码部署到测试和生产环境。
如果在prod中未发现问题,则将CI分支中的代码合并到master

相关问题