白嫖GitHub Action实现开源项目CICD

这篇具有很好参考价值的文章主要介绍了白嫖GitHub Action实现开源项目CICD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是CI/CD?让你的项目变得更加敏捷!

在今天这个快速变化的时代,开发者们需要与时俱进,不断提升自己的工作效率。在这篇文章里,将一起探讨如何使用CI/CD和Github Action让你的项目更加高效,快速响应市场变化。

什么是CI?

CI(持续集成,Continuous Integration)是一种软件开发实践,它要求开发者频繁地将代码集成到共享的主干分支中。每次集成都会触发自动化的构建和测试,以便尽早发现和修复问题,减少整体风险。

什么是CD?

CD(持续交付和持续部署,Continuous Delivery/Deployment)是一种紧密跟随CI的实践。它要求在一个自动化的、可复制的环境中,持续地将软件交付给客户或部署到生产环境。这样可以确保软件始终处于可交付或可部署的状态。

使用CI/CD的目的

采用CI/CD的主要目的是提高软件开发过程的效率和质量,从而加快交付速度,缩短反馈周期,降低风险,提高客户满意度。CI/CD在敏捷开发、DevOps等现代软件开发方法中扮演着核心角色。

Github Action是什么

Github Action是GitHub提供的一项自动化服务,它允许你在GitHub仓库中直接定义、构建和执行CI/CD流水线。你可以创建自定义的工作流程,以响应各种事件,如代码提交、Pull Request或者定时任务。

如何在自己的项目上使用Github Action

  1. 在你的GitHub仓库中创建一个名为.github/workflows的目录。
  2. 在该目录中创建一个YAML文件,如ci-cd.yml,来定义你的工作流程。
  3. 编辑YAML文件,编写工作流程的各个步骤,如检出代码、构建、测试、部署等。
  4. 提交YAML文件到仓库,Github Action会自动执行你定义的工作流程。

Github + DockerHub等于CI/CD

通过将Github Action与DockerHub等其他服务相结合,你可以更轻松地实现CI/CD。例如,你可以将构建好的Docker镜像推送到DockerHub,然后使用Kubernetes等工具将镜像部署到生产环境。

如何利用Github Action实现CI/CD:一个实战案例

在前面的文章中,已经了解了CI/CD的基本概念和Github Action的功能。接下来,将通过一个实际的Github项目来详细介绍如何使用Github Action实现CI/CD流程。

以下是整个CI/CD过程的简要概述:

  1. 定义workflow
  2. 本地修改代码
  3. 创建PR(Pull Request)
  4. 合并PR
  5. workflow自动触发完成CI/CD

具体步骤如下:

1. 定义workflow

在你的GitHub仓库中创建一个名为.github/workflows的目录,然后创建一个YAML文件,如ci-cd.yml,用于定义你的CI/CD流程。具体可以看看这里

2. 本地修改代码

在本地环境中修改代码并进行测试,确保代码的质量和可用性。

3. 创建PR(Pull Request)

将本地修改的代码提交到GitHub仓库,并创建一个PR,以便其他团队成员进行代码审查(呜呜呜,然而我没有其他成员)。

4. 合并PR

在代码审查通过后,合并PR到主干分支。

5. workflow自动触发完成CI/CD

一旦PR被合并,Github Action会自动触发定义好的workflow。在本案例中,workflow将完成以下任务:

CI:自动构建Docker镜像,推送到DockerHub

  1. 检出代码:Github Action会自动将最新的代码检出到工作环境中。
  2. 构建Docker镜像:根据项目中的Dockerfile,构建新的Docker镜像。
  3. 推送Docker镜像到DockerHub:将构建好的Docker镜像推送到DockerHub,以便其他人可以轻松获取和使用。

CD:自动拉取最新Docker镜像,启动项目,并重启相关服务

  1. 登录部署服务器:通过SSH登录到目标服务器。
  2. 拉取最新Docker镜像:从DockerHub拉取最新版本的Docker镜像。
  3. 启动项目:运行新的Docker镜像,启动项目实例。
  4. 重启相关服务:如果项目依赖其他服务,例如Ngin等,确保这些服务也被正确地重启。
sequenceDiagram participant Dev as Developer participant Repo as GitHub Repository participant GHAction as GitHub Action participant DockerHub as Docker Hub participant Server as Deployment Server Dev->>Repo: Push local changes Dev->>Repo: Create Pull Request Dev->>Repo: Merge Pull Request Repo->>GHAction: Trigger CI/CD workflow GHAction->>Repo: Checkout code GHAction->>GHAction: Build Docker image GHAction->>DockerHub: Push Docker image GHAction->>Server: SSH login GHAction->>Server: Pull latest Docker image GHAction->>Server: Start project instance GHAction->>Server: Restart related services

在这个时序图中,可以看到整个实战案例中的CI/CD流程。首先,开发者将本地的更改推送到GitHub仓库,并创建并合并Pull Request。当Pull Request被合并时,GitHub Action会自动触发CI/CD工作流程。接下来,GitHub Action会执行一系列操作,包括检出代码、构建Docker镜像、推送镜像到Docker Hub以及登录部署服务器、拉取最新镜像、启动项目实例并重启相关服务。这个时序图可以帮助你更直观地理解CI/CD的过程。

Github Action的优劣势

优势

  1. 与GitHub仓库紧密集成,方便使用。
  2. 支持丰富的事件触发器和可自定义的工作流程。
  3. 免费额度较为充足,适合个人项目和小团队。
  4. 有大量的开源Action可供选择,可以节省时间和精力。

劣势

  1. 对于大型项目和企业级用户,可能需要更高的性能和更多的资源,而Github Action的免费额度有限。
  2. 与第三方服务的集成可能不如专业的CI/CD平台灵活。
  3. 部分高级功能需要付费使用。

在这里,非常希望听到你关于CI/CD和Github Action的看法。你是否已经在项目中应用了这些实践?你认为它们如何帮助你提高效率和质量?请在评论区留下你的想法,让我们一起交流、学习、进步!

如果你喜欢这篇文章,别忘了点赞、分享和关注我的博客,以便在第一时间获取更多关于科技、编程和创新的精彩内容!我们期待与你一起成长!文章来源地址https://www.toymoban.com/news/detail-425746.html

到了这里,关于白嫖GitHub Action实现开源项目CICD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 利用 GitHub Action 对项目进行自动部署

    说一下项目背景,这是一个基于 Docusaurus 搭建的个人博客平台:Yopth.github.io ⚛️ Docusaurs 是一个优秀的搭建网站框架,基于 React 和 MDX,插件化、国际化、SEO 等做的都很不错,有需要搭建网站的同学可以考虑。 该网站利用 GitHub Pages 部署,这个方式也是 Docusaurus 所支持的,详

    2023年04月24日
    浏览(42)
  • GitHub Pulse 是什么?它是否能衡量 OpenTiny 开源项目的健康程度?

    Pulse 是“脉搏”的意思,就像一个人要有脉搏才能算是一个活人,一个开源项目要有“脉搏”才能算是一个“活”的开源项目,这个单词非常形象地表示了开源项目的健康程度。 脉搏是正常的,开源项目才是健康的。 每个开源项目的 Pulse 数据都是公开的,它位于开源项目代

    2023年04月09日
    浏览(74)
  • 【Github-Action】统计整个社区所有项目的贡献

    项目地址 如果你对github-action感兴趣,还可以看这篇文章, 这篇文章教会你如何开发Github Action,并且让你明白它是什么,怎么用,如何做到的。如何开发一个action 我是一个生成 contributors.png 的 github-action,我和市面上其他的不一样,我专门解决整个 Organization 的 commit 统计,

    2024年01月16日
    浏览(48)
  • vitepress项目使用github的action自动部署到github-pages中,理论上可以通用所有

    .githubworkflowsdeploy.yml 完整的代码:使用的是 pnpm 进行依赖安装。 这段 YAML 文件定义了一个 GitHub Actions 工作流,用于在推送到 docs 分支时构建和部署 VitePress 项目。 on : 定义触发工作流的事件,这里是在推送到 docs 分支时触发。 jobs : 定义工作流中的任务。 build-and-deploy : 任务

    2024年01月17日
    浏览(51)
  • 可以白嫖的语音识别开源项目whisper的搭建详细过程 | 如何在Linux中搭建OpenAI开源的语音识别项目Whisper

    原文来自我个人的博客。 服务器为GPU服务器。点击这里跳转到我使用的GPU服务器。我搭建 whisper 选用的是 NVIDIA A 100显卡,4GB显存。 Python版本要在3.8~3.11之间。 输入下面命令查看使用的Python版本。 为啥要安装Anaconda? 为了减少不同项目使用的库的版本冲突,我们可以使用An

    2024年02月09日
    浏览(53)
  • 『GitHub项目圈选01』一款构建AI数字人项目开源了!自动实现音视频同步!

    从本周开始,小圈正式推出『GitHub项目圈选周刊』计划,精选一些小圈遇到的或行业内大佬们推荐的好玩、有趣、实用、超前的开源项目,以周刊文章形式分享给大家观阅学习,以望一起学习,共同进步。 🔥🔥🔥 本周GitHub项目圈选****: 主要包含音视频同步、多代理框架、

    2024年02月04日
    浏览(195)
  • 什么是Github Copilot?这会夺走你的工作吗!?

    今天我们将简要讨论当今最流行的术语——Github Copilot。因此,如果你一直在关注最新的技术更新,你可能已经看到Github发布了新功能,这是一个VS代码扩展Github Copilot 介绍 它是如何工作的 GitHub Copilot能写出完美的代码吗? 这需要开发工作吗?? 简单地说,它是一个vs代码扩

    2024年02月09日
    浏览(37)
  • 破局者:如何开始你的开源项目

    这篇文章主要思考开源项目的意义,就开源项目的选择学习提供实践经验 共享知识和代码。开源项目可以让更多的人获取到代码和相关知识,在小众领域或者新兴领域的项目中可以大大加速技术和知识的传播,促进技术和行业的发展。 相互学习和协作。开源项目可以让来自

    2023年04月08日
    浏览(38)
  • 【寻找开源项目】如何在GitHub上快速寻找自己想要的开源项目

    你好呀! 我是小易同学,一名普通的不能再普通的学习者。 写文章是为了记录自己的学习过程,同时也希望能帮助到需要的人。 如果我的文章对您有帮助,请不要忘记关注我哦🥰 相信大家都有在GitHub上寻找过想要研究一下的项目,但常常却浪费了大把的时间,最后找到的

    2024年02月16日
    浏览(42)
  • 在GitHub找开源项目

    在 GitHub 的搜索框里: 使用搜索可以在 GitHub 上快速的找你需要的开源项目: 通过 in (大小写不敏感) 限制搜索范围: 公式 搜索范围 in:name xxx 项目名包含xxx in:description xxx 项目描述包含xxx in:readme xxx 项目介绍文档包含xxx 例如:搜索项目名包含 “chat”、项目描述

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包