什么是 CI/CD?
如果您是一名正在寻找工作的初级开发人员,您会看到许多职位描述都提到他们希望有人在 CI/CD 方法论方面有经验。也许您知道它的含义或不知道它的含义。在本文中,我将解释它的含义以及为什么要练习它。
为了回答这个问题,我将带你踏上一段旅程,我将分成 3 个阶段(受漫威电影宇宙阶段的启发)。
第一阶段
当我 6 年前开始编码并了解 Git 和 GitHub 时,我主要将其用作备份存储工具。我使用 GitHub 作为存储代码的地方,因为我每隔几个月就会格式化我的计算机。
因此,我将 GitHub 视为存储代码的地方,如果由于某种原因我丢失了计算机上的代码,我可以从 GitHub “恢复”(克隆)代码。
在这个阶段,我所有的代码都在 硕士(主)
**** 分支。我不知道分支。
第二阶段
在使用了一段时间的 Git 和 GitHub 之后,我开始做自由职业时了解了分支。在我了解分支之前,我会直接在主分支中工作,如果我在本地代码中引入了致命错误,我会从 主要的
**** GitHub上的分支。
在学习了使用分支后,我真的很惊讶。这意味着我可以在功能分支中编写代码,然后只将其合并到 主要的
当一切正常时。
第三阶段
在过去的一年里,当我开始与同一个项目的其他开发人员进行远程异步工作时,我了解到 Gitflow 工作流程。 Gitflow 工作流有两个分支而不是一个分支。您可以在以下位置了解有关 Gitflow 工作流程的更多信息 阿特拉斯
同样在我的第三阶段,我开始使用 Linters 和 GitHub Actions。在合并之前 特征分支
进入 开发
分支,您运行执行代码分析以强制配置标志、建议性能改进、检查是否符合给定样式指南或安全规则的 linter 等等。 Linter 对代码进行标准化,以确保每个人的代码在合并到 开发
分支。
第四阶段
这是我现在所处的阶段,也是我了解 CI/CD 的阶段。那有什么意思?嗯,CI的意思是 持续集成, 和 CD 意味着 持续部署。 CI 和 CD 是敏捷和 Scrum 的基础。如果您想要完美且最简单的解说视频,请观看此视频 敏捷和 Scrum 简介 .
持续集成
在团队中工作时, 持续集成 是一种允许每个人连续添加和集成他们的代码到现有代码库的实践,甚至一天多次。我们不等待某人完成某事;每个人都在开发各自的功能并不断合并他们的工作。我们不想每周或每月集成一次工作,因为这会导致集成问题。
持续集成确保我们推送的代码与团队中其他人完成的现有工作安全集成。
持续集成管道
CI 的核心支柱之一是使用管道。 Gitlab 提供了确保持续集成过程顺利运行的管道。在 Gitlab 配置文件中定义的简单管道看起来像这样
Pipeline Stages
任何想向代码库添加新功能的人都必须通过这些阶段来传递他们的代码。但是,通常如果您的测试通过 .pre、测试代码、构建和测试构建 阶段,您将其部署到暂存环境,而不是生产环境。部署到生产环境通常是手动完成的,而不是那么频繁。
因此,定义了这些阶段后,您就有了一个看起来像这样的管道
Pipeline
在管道运行并且一切顺利之后,它看起来像这样。
有了这些检查,我相信我可以将我的功能分支合并到暂存环境中。经过代码审查后,我将合并我的 特征分支
,这会触发我们接下来会看到的另一个管道。
持续交付/持续部署
根据 AWS 的说法,持续交付 (CD) 是一种软件开发实践,其中代码更改会自动准备好发布到生产环境。这是一篇关于持续交付的精彩文章,来自 AWS
持续交付通过在构建阶段之后将所有代码更改部署到暂存环境来扩展持续集成。暂存环境与生产环境相似/相同,只是它不是公开可用的。每个成功的合并请求都会导致部署到登台环境。合并后 特征分支
,运行持续交付管道以将新功能部署到暂存环境。
continuous delivery pipeline
注意:部署到生产阶段不会自动运行;当我们确定在暂存环境中一切正常时,我们需要手动运行它
结论
在最近的一次采访中被问到 CI/CD 是什么之后,我不得不了解什么是 CI/CD。如果您正在寻找您的第一份软件开发工作,我强烈建议您学习 CI/CD 并在维护您的投资组合网站时进行练习。了解 CI/CD 将帮助您展示您在使用 CI/CD 的敏捷团队中工作的能力和准备情况。
如果你想获得 CI/CD 的实践经验,我推荐 使用 GitLab CI 课程的 DevOps — 构建管道并部署到 AWS Valentin Despa 的精彩 FreeCodeCamp 教程可在 YouTube 上免费获得。
Learn DevOps
感谢您走到这一步;直到下一次。平安✌
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/38926/30482411
标签:集成,CI,GitHub,代码,CD,什么,分支 From: https://www.cnblogs.com/amboke/p/16725243.html