标题:GitHub保姆级指南(番外篇):被吹上天的“自动化”到底是个啥?普通人该碰吗?

标签: GitHub Actions、自动化部署、CI/CD、零基础避坑、保姆级教程

在前面的上中下三篇里,我反复叮嘱过你们一句话:“仓库里的 Actions 标签页,千万别手贱点进去乱跑流程!”
很多兄弟就好奇了:“这玩意儿到底是个啥?为什么你们老手把它吹得神乎其神,说它能‘自动化部署’,却又死活不让我点?”

今天,作为番外篇,咱们就把这个 GitHub 里最高级、最容易踩坑、但也最牛逼的功能——GitHub Actions(自动化),彻底扒光。

我依然不用专业术语骂你们,咱们还是用“傻瓜式”的视角,把每一个按钮、每一行配置掰开揉碎了讲。最关键的是,文章最后我会直接回答那个灵魂拷问:“我到底要不要开这个自动化?”

第一部分:到底什么是 GitHub Actions?

打个比方:

以前咱们写代码、传代码,就像是手工作坊。你在电脑上写完 -> 点加号 -> 写备注 -> 点推送 -> 然后手动登录到服务器 -> 把代码传上去 -> 手动重启服务器。

整个过程,你既是厂长,又是搬运工,还是操作工。每天重复这些极其无聊的体力劳动。

GitHub Actions 是什么?它是 GitHub 免费送你的一个“不知疲倦的赛博实习生”。

你只要给它写一份“SOP操作说明书”(在GitHub里叫 Workflow 文件),然后跟它说:“实习生,以后只要我一推送代码,你就按这个说明书,帮我跑测试、帮我打包、帮我发到服务器上。”

它就会在云端(GitHub的服务器上),全自动、一丝不苟地帮你干完这些活。干完了,还会给你发个微信(邮件通知)说:“老大,干完了,没出错。”

在软件界,这个装逼的名词叫 CI/CD(持续集成/持续部署)。别管这四个字母啥意思,记住:它就是代替你干苦力的机器人。

第二部分:这个“实习生”能帮你干什么?

具体来说,你可以让它干这三类活儿:
1. 质检员(自动化测试与检查)

你推送了代码,实习生立刻拿去编译一遍。如果有语法错误(比如少了个分号),或者你写的代码太丑(不符合规范),它会直接在你的“交作业界面(PR)”里打个红叉,告诉你:“代码有Bug,不准合并!”

作用:防止劣质代码混入主线。

2. 打包员(自动构建)
比如你是个前端,写了一堆 Vue 或 React 代码,这些代码浏览器是不认识的,得“打包”成 HTML/CSS/JS。以前你自己敲命令打包,现在你推送代码后,实习生自动帮你敲命令打包好,然后把打包好的文件放在一个角落等你拿。

3. 快递员(自动部署)

这是最高级的。实习生不仅帮你打包好,还自己“打了个车”,把代码直接送到阿里云/腾讯云的服务器上,并且自动执行重启命令。你这边刚点完“推送”,喝口水的功夫,用户那边刷新网页,就已经看到新功能了。

第三部分:界面拆解,手把手带你见识一下

现在,咱们点进某个仓库的 Actions 标签页,看看里面到底长啥样。

1. 黄色的警告横幅:【必看!】
第一次点进来,顶部绝对会有一个大黄框,写着类似 Workflows aren't being run on this repository.(这个仓库还没有运行过工作流)。
左边有一个绿色的按钮 “I understand my workflows, go ahead and enable them”

评判:新手绝对、绝对、绝对不要点这个按钮! 除非你明确知道你要干什么。点下去可能不会扣钱,但如果你 Fork 了别人的带恶意代码的项目,点这个就等于引狼入室(后面细说)。

2. 左侧边栏( workflows 列表):
如果你点进去了,左边会显示一堆名字(比如 CI.ymldeploy.yml)。这就叫工作流,也就是你给实习生写的不同岗位的“说明书”。点击它们,能看到每次运行的历史记录。

3. 右边的绿色按钮 “Set up a workflow yourself”(自己设置工作流):
点这个,你就会进入一个写“说明书”的界面。
注意看,它会自动给你生成一个叫 main.yml 的文件(在 .github/workflows/ 目录下)。

这个 main.yml 文件长啥样?别怕,我给你翻译一下:

# 这行意思是:给这个说明书起个名字,叫 "CI"
name: CI
# 这行意思是:什么时候触发这个实习生干活?
# 下面这行 on: [push] 的意思就是:只要你一推送代码,他就干活。
on: [push]
# 这行意思是:具体要干哪些活?(jobs代表任务)
jobs:
  # 这是一个叫 "build" 的任务
  build:
    # 在什么系统上干?(最常用的是 ubuntu-latest,就是Linux服务器)
    runs-on: ubuntu-latest
    # 具体步骤:
    steps:
      - name: 拉取你的代码
        uses: actions/checkout@v3 # 这叫“别人写好的工具”,直接拿来用
        
      - name: 安装环境(比如Node.js)
        uses: actions/setup-node@v3
        with:
          node-version: '18'
          
      - name: 执行打包命令
        run: npm run build # 这里的 run 就是让你敲Linux命令的地方

你看,其实就是个配置清单,告诉它:什么时候干活 -> 在什么系统干 -> 分几步干 -> 每步用什么命令。

第四部分:每个人都免费吗?有坑吗?

直接回答:是的,每个人都能免费用,但“免费”是有额度的,而且有隐藏大坑!

1. 免费额度账本:
GitHub 给所有账号(哪怕是免费的普通账号)每个月都送 2000 分钟 的运行时间(只算 Linux 服务器,如果你非要用 Windows 或 Mac 服务器跑,时间扣得飞快,要乘以10倍)。

对于个人写的小项目,这2000分钟根本用不完。但如果你的项目极其庞大,每次跑都要十分钟,一天推送几十次,可能月底就会提示你额度用完了。

2. 惊天大坑:恶意挖矿陷阱!!!【严重警告】
这是新手最容易踩的坟场!

很多小白喜欢去 GitHub 上到处 Fork(克隆) 别人的项目(比如什么“免费领外挂”、“抢茅台脚本”、“破解版软件”)。

注意!有些坏逼会在他们项目的 Actions 里,暗藏一段挖矿代码!

只要你 Fork 了,并且手贱点了一下那个黄色的 “enable workflows” 按钮,那个隐藏的“实习生”就会在你的 GitHub 云端账户里,疯狂利用你免费的 2000 分钟额度,去帮别人挖加密货币!

等你发现的时候,你的账号可能已经被 GitHub 封禁了。
铁律:永远不要随便开启你不了解的 Fork 项目的 Actions!


第五部分:终极灵魂拷问——所有人都应该开 Actions 吗?

我的回答非常干脆:不!绝大多数刚入门的兄弟,根本不需要碰它!

很多人有一种“技术焦虑”,觉得“别人都在搞自动化,我不搞我就落后了”。这就好比你刚学会骑自行车,非要去买辆波音747的操作手册看看,除了增加焦虑,毫无用处。
我给你分个类,对号入座:

❌ 坚决不要碰 Actions 的人群:
  1. 还在写单机网页/简单脚本的人: 你连个后端服务器都没有,你自动部署个寂寞?部署到你自己的电脑上吗?
  2. 刚学编程不到半年的小白: 你的核心任务是搞懂变量、循环、面向对象。搞懂 .yml 文件里的环境变量配置,对你现在的水平来说,属于严重的“精力透支”。
  3. 纯粹把 GitHub 当网盘存作业的大学生: 你一学期就交两次作业,手动上传只需要 10 秒钟,写个自动化配置你得研究一下午,图啥?
    对于这类人,Actions 标签页就当成不存在,继续老老实实用 VS Code 点加号、点勾号推送。
✅ 应该开始研究 Actions 的人群:
  1. 开始做前后端分离项目,并且买了云服务器的人: 你已经受够了每次改个前端 Bug,都要 SSH 登录服务器,敲 git pull,敲 npm run build。这时候,花半天时间研究 Actions,让实习生替你干,绝对值得!

  2. 加入团队,或者做开源项目的人: 团队必须有规范。别人交 PR,必须让 Actions 跑一遍测试,绿了才能合并。这是正规军的标配。

  3. 写了一个工具库(比如 npm 包)的人: 你可以设置 Actions,每次你发个新版,它自动帮你发布到 npm 官网上,爽得飞起。


给想尝试的人的“傻瓜式”起步建议

如果你觉得自己符合上面“该学”的条件,想试试,千万别从头手写 yml,你会崩溃的。

正确的偷懒姿势:

  1. 去找一些成熟的开源项目(比如 Vue、React 的官方仓库,或者一些有名的开源后台管理系统)。
  2. 点进它们的 Actions 标签页,看它们左边叫什么名字。
  3. 点进去,看它们运行的步骤。
  4. 点开它们仓库里的 .github/workflows/xxx.yml 文件,直接全选 -> 复制 -> 粘贴到你自己的仓库里
  5. 改改里面的 run: npm run build 这种命令,改成你自己项目的打包命令。
  6. 推送代码,看它跑不跑得通。报错了,把报错信息复制去问 ChatGPT,它比任何教程都好使。

番外篇总结

GitHub Actions 是一把极其锋利的屠龙刀。
对于还在砍柴的新手来说,这把刀太沉了,容易割伤自己;

但对于要上山打虎的正规军来说,没有这把刀,你连老虎的毛都摸不到。

认清自己现在的阶段,别被各种花里胡哨的技术名词绑架。把 Git 的基础操作(分支、PR、推送)练得像吃饭喝水一样自然,比什么都重要。

当你哪天觉得:“妈的,我实在不想再手动登录服务器打包了!”

那个时候,你再点开 Actions 标签页,你会发现,里面的每一行代码,都亲切得像亲人一样。

去吧,先把之前的“交作业”流程练熟!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐