首页 / CI/CD / GitHub Actions CI/

GitHub Actions CI/CD 超神教学:自动化部署到起飞,再也不用手动“搬砖”!

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

嗨,各位酷炫的Geek小伙伴们,周末愉快呀!

3x效率提升60%成本降低99.9%可用性200+合作伙伴
市场需求验证竞品差异分析用户画像构建增长策略制定ROI 持续优化

我大Eccfy又来啦!是不是跟我一样,每天都在思考怎么让开发变得更轻松、更高效?手动部署?哦不!那简直是上个世纪的活儿!今天,咱们就来聊一个能让大家彻底告别“手动搬砖”烦恼的神器:GitHub Actions CI/CD流水线!没错,就是那个能让你的代码一提交,就自动测试、构建、部署到服务器的魔法!激动不激动?!

第一章:CI/CD是啥?GitHub Actions有啥用?(废话不多说,直接看效果!)

OK,so,很多刚接触的小伙伴可能会问,CI/CD到底是个啥?简单来说,CI就是持续集成(Continuous Integration),CD就是持续交付/部署(Continuous Delivery/Deployment)。它就像一个“流水线”,当你的代码一提交到GitHub仓库,这个流水线就会自动跑起来,帮你完成一系列任务:比如跑测试,看看你有没有写出bug,把代码打包,再给你扔到服务器上。想象一下,你只需git push,然后就可以去喝咖啡了,剩下的脏活累活GitHub Actions就全帮你搞定!是不是跟白嫖一个高级助理一样爽?!

怎么用GitHub Actions? 它原生集成在GitHub里,你不需要安装任何额外的软件,只需要在你的项目根目录新建一个 .github/workflows 文件夹,然后在里面写一个YAML文件,就搞定了!今天,我就带大家“手把手”配置一个最基础但超实用的CI/CD流水线!

第二章:实战配置!你的第一个自动化部署流水线!

接下来,咱们直接上干货!各位看官,请把你的眼睛瞪大一点,屏幕前的你,跟着我一起操作起来!这个教程保准比你看那些“油管怎么看”的卡顿视频要流畅多了!

第一步:创建工作流文件。

在你的项目根目录,创建一个路径:.github/workflows/deploy.yml。就命名为`deploy.yml`,简单明了!

第二步:编写YAML配置。

现在,把下面这段代码粘贴进去。我这里演示一个简单的Node.js项目自动部署到服务器的例子。别担心,我会逐行解释!

name: Node.js CI/CD to Server

on:

push:

branches: [ "main" ] # 当代码推送到main分支时触发

jobs:

build_and_deploy:

runs-on: ubuntu-latest # 在最新的Ubuntu系统上运行

steps:

  • name: Checkout code

uses: actions/checkout@v4 # 检出你的代码

  • name: Setup Node.js

uses: actions/setup-node@v4

with:

node-version: '18' # 使用Node.js 18版本

  • name: Install dependencies

run: npm install # 安装项目依赖

  • name: Run tests (optional but highly recommended!)

run: npm test # 运行你的单元测试

  • name: Build project (if applicable)

run: npm run build # 构建项目,例如React/Vue的前端项目

  • name: Deploy to Server via SSH

uses: appleboy/ssh-action@master

with:

host: ${{ secrets.SSH_HOST }} # 你的服务器IP

username: ${{ secrets.SSH_USERNAME }} # SSH用户名

password: ${{ secrets.SSH_PASSWORD }} # SSH密码,或用key代替更安全

script: |

cd /var/www/your-app # 进入你的项目目录

git pull origin main # 更新最新的代码

npm install # 重新安装依赖

pm2 restart your-app # 重启你的应用 (如果你用pm2管理进程)

# 或者:systemctl restart your-app.service # 或者其他重启服务的命令

几点核心解释:

  • `on: push: branches: ["main"]`:这表示当有人往`main`分支提交代码时,这个工作流就会被触发。
  • `runs-on: ubuntu-latest`:在GitHub提供的最新Ubuntu虚拟机上执行这些任务。
  • `steps`:这就是你的CI/CD流水线里的一个个“环节”或者“任务”。
  • `actions/checkout@v4`:这是一个官方Action,用来把你的仓库代码拉取到GitHub Actions的环境里。
  • `actions/setup-node@v4`:设置Node.js环境。
  • `appleboy/ssh-action@master`:这是个第三方Actions,巨好用!它能通过SSH连接到你的服务器执行命令。
  • `secrets.SSH_HOST`等:划重点!敲黑板!这些是你的敏感信息,千万不要直接写在YAML文件里!要去GitHub仓库的 `Settings -> Secrets -> Actions` 里添加!这个“GitHub Actions CI/CD流水线配置教程”里,安全是第一位的!

第三步:添加GitHub Secrets。

在你的GitHub仓库页面,点击 “Settings” -> “Secrets and variables” -> “Actions” -> “New repository secret”。

你需要添加以下三个 Secret:

  • `SSH_HOST`:你的服务器IP地址。
  • `SSH_USERNAME`:你的SSH登录用户名。
  • `SSH_PASSWORD`:你的SSH登录密码 (或者使用 `SSH_PRIVATE_KEY` )。

第四步:提交代码,见证奇迹!

现在,把你的 `deploy.yml` 文件提交到 `main` 分支。`git add .` -> `git commit -m "Add GitHub Actions CI/CD"` -> `git push origin main`。

然后,回到你的GitHub仓库,点击 “Actions” 标签页,你会看到你的工作流已经在运行了!它会一步步执行你定义的任务。如果一切顺利,你的应用就自动部署到服务器上了!是不是超酷!

第三章:更多玩法与注意事项

OK,so,这是一个最基础的示例。GitHub Actions的功能非常强大,你可以自定义各种工作流:

  • 多环境部署: 可以设置推送到`dev`分支部署到开发环境,推送到`main`分支部署到生产环境。
  • 集成Docker: 构建Docker镜像,推送到Docker Registry,然后在服务器上拉取并运行。
  • 发送通知: 部署成功或失败后,自动发送邮件、Slack或钉钉通知。
  • 定时任务: 可以设置每天凌晨运行某个脚本进行数据备份。

注意事项:

  • 安全性: 务必使用Secrets来存储敏感信息,不要明文写在YAML里。
  • 幂等性: 确保你的部署脚本是幂等的,即重复运行多次也能得到相同的结果,不会造成副作用。
  • 日志: 仔细查看Actions的运行日志,这是排查问题最重要的工具。
  • 学习资源: GitHub Actions的官方文档非常详细,遇到问题多查阅。也可以搜索“GitHub Actions怎么用”来获取更多实战案例。

最后,我再次强调,自动化部署是现代开发不可或缺的一环!学会配置GitHub Actions,能大大提升你的开发效率和项目质量。赶紧去试试看吧!如果你在配置过程中遇到任何问题,欢迎在评论区留言,我们Eccfy社区的小伙伴们都会热心帮你!

好了,今天的分享就到这里!别忘了点赞、关注、收藏!咱们下期再见!Peace out!