从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • RSS
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 📖 读书

    • 读书工具
    • 读书笔记
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • RSS
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金等
  • 职场规划
  • 关于离职
  • 杂谈
  • 📖 读书

    • 读书工具
    • 读书笔记
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

  • 数据库

  • 编程工具

    • Git

      • 版本控制
      • 安装和配置 Git
      • 初识版本库
      • 版本管理
      • 工作区、暂存区和修改
      • 远程仓库
      • 解决 GitHub 访问失败的办法
      • 关于 GitHub 的奇技淫巧
      • 分支管理
      • GitStash
      • 远程仓库和分支
      • 标签管理
      • 自定义 Git
      • 使用可视化工具
      • Github Action
        • 介绍
        • 如何学习
        • 如果遇到了问题
        • 根据表达式执行 GitHub Action
      • 常用 Git 命令
      • Git 帮助文档
      • GitHub 个人主页美化教程
      • 其他 GitHub 技巧
      • 在 commit 里使用 emoji~
      • 逆天,CSDN 批量搬运 GitHub 项目
    • 终端

  • 装机

  • 计算机基础
  • 编程工具
  • Git
2023-01-17
目录

Github Action

# 130.Github Action

Github Action 是一种自动化构建工具。

‍

# 介绍

什么是 GitHub Action?来看看阮一峰大佬的介绍 (opens new window):

GitHub Actions (opens new window) 是 GitHub 的持续集成服务 (opens new window),于 2018 年 10 月推出 (opens new window)。

大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。

很多操作在不同项目里面是类似的,完全可以共享。GitHub 注意到了这一点,想出了一个很妙的点子,允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。

如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。

............................. ‍ 使用 GitHub Action 能做什么事呢?比如我的博客就使用了 GitHub Action,在我每次 commit 之后,就能自动编译并打包,然后部署到我的服务器上;

这样我就不用自己打包,然后部署到服务器上了,节省了很多时间;如果部署失败了,也会有邮件提醒;例如:

​​ ‍

因此,我们只需关注代码本身,构建的事情不用管。在笔者工作的公司里,也有这样的平台,大大节省了开发人员用于构建的时间。

# 如何学习

那么如何学习和使用 GitHub Action 呢?笔者并未深入学习和使用,基本上入门看几篇博客即可:

  • GitHub Actions 入门教程 - 阮一峰的网络日志 (opens new window)

  • Github Actions 实现 Node.js 项目的 CICD 环境搭建_nginx_昆吾 kw_InfoQ 写作社区 (opens new window)

  • Github Action 快速上手指南 - 简书 (opens new window)

  • 通过 GitHub Actions 自动部署 vuepresss 项目到云服务器_居無何的博客-CSDN 博客 (opens new window) ‍ 除此之外,官方文档也是少不了的:

  • 英文版:docs.github.com/en/actions (opens new window)

  • 中文版:docs.github.com/zh/actions (opens new window) ‍ 感兴趣的同学可以看看我的个人搭建博客中的部署篇 (opens new window),里面就写的很详细。 ‍

# 如果遇到了问题

如果 GitHub Action 遇到了问题,不要怕,要采取不解决誓不罢休的态度。 ‍ 一般来说,构建失败会有邮件提醒,可以直接通过邮件里的链接来跳转到相应的页面;我们也可以一步步进去看。首先打开自己的仓库选择 Git Action:

​​

如果构建成功,是有一个绿色 √ 标记的,否则是一个 ❌ 标记。我们可以通过翻页来查看错误的构建:

​​ ‍

对于错误的构建,可以点进去看具体的报错信息:

​​

再点进去看报错信息:

​​ ‍

​

可以看到是报错依赖没有找到,经过检查,Action 里没有安装依赖导致:

​​ ‍

遇到什么问题,就解决什么问题,不管是搜索引擎,还是咨询他人,总能解决。 ‍

# 根据表达式执行 GitHub Action

有些情况下,并不是需要每次有提交都运行 GitHub Action。

例如我的博客,由于更新频繁,一般是 2 ~ 3 天才更新一次 CDN,所以并不需要每次提交后都运行 Action

为此,GitHub 提供了 expressions 功能,根据表达式来决定是否运行。 ‍

# 快速入门

例如,我想要当 commit msg 里包含某些关键字(例如 deploy)的时候,才运行 GitHub Action,那么我可以这样写:

jobs:
  build:
    runs-on: ubuntu-latest
    # 当 commit msg 里包含 deploy 的时候才运行
    if: ${{ contains(github.event.head_commit.message, 'deploy')}}
    # 省略....
1
2
3
4
5
6

之后再次提交时,只要 commit msg 中不带关键字 deploy,则不会运行 GitHub Action。在后台也能看到这个 action 是被跳过(Skipped)的:

​​

# 如何撰写表达式

这个请参考官网文档:

  • 英文版:Expressions - GitHub Docs (opens new window)
  • 中文版:使用条件控制作业执行 - GitHub 文档 (opens new window)

文档写的很详细,我就不赘述了,点到为止。

上次更新: 2025/5/9 14:55:39
使用可视化工具
常用 Git 命令

← 使用可视化工具 常用 Git 命令→

最近更新
01
吐槽一下《僵尸校园》
05-15
02
2025 年 4 月记
04-30
03
山西大同 “订婚强奸案” 将会给整个社会带来的影响有多严重? - 知乎 转载
04-26
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式