当前位置:首页 > 技术分析 > 正文内容

从零开始,打造你的个人 CI/CD 持续集成环境

ruisui882个月前 (04-28)技术分析8

在当今 DevOps 时代,持续集成(CI)和持续部署(CD) 是软件开发中的核心环节。无论是个人项目还是企业级应用,一个高效的 CI/CD 环境能极大提升开发效率,减少人为失误。今天,我们将从零开始,搭建一个属于你自己的 CI/CD 自动化部署环境。


1. 什么是 CI/CD?


CI(Continuous Integration,持续集成):开发人员频繁地将代码提交到远程仓库,并自动进行代码构建、测试和分析。

CD(Continuous Deployment/Delivery,持续部署/交付):通过自动化的方式,将测试通过的代码部署到服务器,实现无缝更新。


常见的 CI/CD 工具包括:

o Jenkins(老牌 CI/CD 工具,功能强大但配置复杂)

o GitHub Actions(与 GitHub 结合紧密,适合个人项目)

o GitLab CI/CD(GitLab 内置 CI/CD,适合团队协作)

o Drone、CircleCI、Travis CI(适合云端 CI/CD)


2. 从零开始搭建 CI/CD


(1)选择 CI/CD 工具


本次我们使用 GitHub Actions,因为它免费、易用,并且与 GitHub 仓库无缝集成,非常适合个人开发者。


(2)创建 GitHub Actions 工作流

1. 创建 GitHub 仓库

在 GitHub 上新建一个代码仓库,例如 my-ci-cd-project。

2. 编写 Actions 工作流文件

在项目根目录创建
.github/workflows/deploy.yml 文件,并添加以下内容:

name: CI/CD Workflow


on:

push:

branches:

- main


jobs:

build:

runs-on: ubuntu-latest

steps:

- name: 检出代码

uses: actions/checkout@v2


- name: 安装 Node.js

uses: actions/setup-node@v3

with:

node-version: '16'


- name: 安装依赖

run: npm install


- name: 运行测试

run: npm test


- name: 部署到服务器

run: |

ssh user@your-server "cd /var/www/my-project && git pull && npm install && pm2 restart app"

解释:

o 当代码 push 到 main 分支时,触发 CI/CD 工作流。

o 运行 checkout、Node.js 安装、依赖安装、测试和部署 任务。

o 使用 ssh 远程登录服务器,拉取最新代码并重新部署。


3. 自动化部署到云服务器


如果你有自己的服务器(如阿里云、腾讯云、VPS 等),可以通过 SSH 远程执行部署命令。

但如果你希望用 完全托管的 CI/CD 方案,可以考虑:

o Vercel / Netlify(适用于前端项目)

o Heroku / Render(适用于全栈应用)

o Docker + Kubernetes(适用于企业级应用)


4. 如何提升 CI/CD 体验?

o 启用 Webhook:让 GitHub 仓库的每次变更都自动触发 CI/CD 任务。

o 使用 Docker 容器:将 CI/CD 任务打包到 Docker 容器,减少环境依赖问题。

o 结合 Kubernetes:实现更大规模的自动化部署。


总结


通过 GitHub Actions,我们从零开始搭建了一个高效的 CI/CD 自动化部署环境,可以大大提升软件开发效率。你可以在此基础上:

o 加入数据库迁移

o 添加 Slack / 微信通知

o 结合 AWS / GCP / Azure 进行云端部署


有了 CI/CD,你将彻底告别手动部署的烦恼! 现在,赶紧动手试试吧!


你是否已经在用 CI/CD?欢迎留言讨论你的 CI/CD 方案!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3662.html

标签: 集成环境
分享给朋友:

“从零开始,打造你的个人 CI/CD 持续集成环境” 的相关文章

java调用API操作GitLab

最近需要在一个WEB项目中集成GitLab,用到了GitLab的API操作,在网上找了很久都是说直接调用GitLab的Http接口,而且API官方只有javadoc没有其它说明文档,特别记录下,以备查询。这里采用Token的认证方式,因此需要先登陆GitLab新建一个Token,创建方式如下:创建完...

22《Vue 入门教程》VueRouter 路由嵌套

1. 前言本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置路由。2. 配置嵌套路由实际项目中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层...

突发!微信全面封禁字节跳动旗下办公产品飞书

日前,字节跳动旗下办公套件飞书发布官方公告称,飞书相关域名无故被微信全面封禁,并且被单方面关闭微信分享API接口。和讯科技对此进行了尝试,发现“feishu”相关域名链接在微信内均无法打开,显示“如需浏览,请长按网址复制后使用浏览器访问”,而在飞书内也无法直接跳转微信分享,显示“未获得分享权限”。据...

深入理解同步/异步与阻塞/非阻塞区别

编者按:高可用架构分享及传播在架构领域具有典型意义的文章,本文由「那谁」投稿。转载请注明来自高可用架构公众号「ArchNotes」。「那谁」,codedump.info 博主,多年从事互联网服务器后台开发工作。几年前曾写过一篇描写同步/异步以及阻塞/非阻塞的文章,最近再回头看,还存在一些理解和认知误...

2022年甘肃特岗、三支一扶、西部计划报名通知

报名时间2022年6月7日9:00至6月11日18:00报名网站甘肃省人力资源考试中心(http://ks.rst.gansu.gov.cn)准考证打印时间2022年6月27日9∶00至7月2日9∶00考试时间和地点2022年7月2日考试地点以准考证上指定的地点为准成绩查询时间7月22日左右点击下方...

大容量SSD太贵买不起,这三种低成本方案也能让硬盘速度起飞

现在的游戏文件夹体积动不动就突破100GB,256GB、512GB容量的SSD装不了几个游戏就满了。虽说现在SSD价格一直在降,但是1TB及更大容量的SSD价格依然比较高。如果你对硬盘容量、速度有较高要求,又不想花太多预算的话,这三种低成本硬盘加速方案一定要了解一下。锐龙用户的福利——StoreMI...