千家信息网

如何快速掌握Github Actions

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"如何快速掌握Github Actions",在日常操作中,相信很多人在如何快速掌握Github Actions问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2026年11月02日如何快速掌握Github Actions

这篇文章主要介绍"如何快速掌握Github Actions",在日常操作中,相信很多人在如何快速掌握Github Actions问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何快速掌握Github Actions"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

快速开始

在 github 上进入个人仓库,找到 Actions 的标签页

Actions

如果你是一个前端项目,可以使用 Node.js 的模板,点击 Set up this workflow

Actions Setup

此时生成了一个文件 .github/workflows/nodejs.yaml,修改内容如下

name: Git Action Test  on: [push]  jobs:   build:      runs-on: ubuntu-latest      steps:     - uses: actions/checkout@v1     - name: Use Node.js 10.x       uses: actions/setup-node@v1       with:         node-version: 10.x     - name: npm install, build       run: |         npm install         npm run build --if-present       env:         CI: true

执行 git push 操作,此时可以在 github 的 Actions 标签页看到执行结果

Actions Start

术语

runner: github 分配的用来执行 CI/CD 的构建服务器 (也可以自建 runner)

workflow: CI/CD 的工作流

job: 任务,比如构建,测试和部署。每个 workflow 由多个 job 组成

step: 每个 job 由多个 step 组成

配置

参考官方文档: Workflow syntax for GitHub Actions[1]

以下是常用到的配置

on

该 CI/CD 触发时的事件。如果需要上传代码自动部署的功能时,应该选择 on: push

on: push

更多事件可以参考官方文档 Events that trigger workflows[2]

另外,我们可以利用 issues 事件做很多事情,如邮件通知之类

如果是 Issue 类博客,则可以通过监听 issues.opened 事件,调用 github api,自动生成网址博客

on:   issues:     types: [opened, edited, milestoned]

jobs

一个 CI/CD 的工作流有许多 jobs 组成,比如最典型的 job 是 lint,test,build 或者 deploy。

jobs:   test:   build:   deploy:

所有的 job 都是并行的,但往往会有依赖关系:「你总得通过测试了,才能再去部署吧」

jobs..needs

needs 确定 job 的依赖关系

jobs:   test:   deploy:     needs: test

jobs..runs-on

当你使用 github actions 时,github 会十分大方的给你分配一个配置还不错的服务器作为构建服务器,用来跑你的 workflow

  • 2-core CPU

  • 7 GB of RAM memory

  • 14 GB of SSD disk space

恩,比我自己的服务器要强

使用 runs-on 指定服务器系统,用的最多的应该就是 ubuntu-latest 了

runs-on: ubuntu-latest  runs-on: windows-latest

jobs..steps

即某个任务的一系列动作,如部署一个前端需要安装依赖,编译代码等等

jobs..steps.name

为 step 指定一个名称,将会在 github action 的控制台中显示

jobs..steps.run

该 step 需要在 shell 中执行的命令

# 单行 - name: Install Dependencies   run: npm install  # 多行 - name: Install and Build   run: |     npm install     npm run build

jobs..steps.uses

选择一个 action,可以理解为若干 steps.run,有利于代码复用。这也是 github action 最主要的功能。

如果你想找一个好用的 github action,可以在 github marketplace 浏览并检索

这是一个在当前操作系统中安装 node:10 的 action 示例

- name: use Node.js 10.x   uses: actions/setup-node@v1   with:     node-version: 10.x

当然,这里怎么能少得了 docker 的身影呢,在 actions 中也可以使用 docker。如果对 docker 不太了解,可以看我的文章: docker 简易入门[3]

以下是 npm install 的一个示例

jobs:   build:     steps:       - name: Install         uses: docker://node:alpine         with:           args: npm install

secret and context

如何在 github action 上访问敏感数据?如使用 ssh 登录时如何维护密码。

我们可以在 github repo 上依次点击 Settings -> Secrets 设置 secret

Actions Secrect

- name: setup aliyun oss   uses: manyuanrong/setup-ossutil@master   with:     endpoint: oss-cn-beijing.aliyuncs.com     access-key-id: ${{ secrets.OSS_KEY_ID }}     access-key-secret: ${{ secrets.OSS_KEY_SECRET }}

这里的 secret 就是一种 context,描述 CI/CD 一个 workflow 中的上下文信息,使用 ${{ expression }} 语法表示。除了 secret,还有

  • github: workflow 的信息,如 github.sha 可以获取当前的 commit SHA,我们可以利用它为 sentry 或者 docker image 打入版本号

  • env: 环境变量

  • job: 当前执行 job 的信息,如 job.status 表示当前 job 的执行状态

  • matrix: 描述一些构建信息,如 node 以及 os 版本号

更多 context 信息可以参考官方文档 Contexts and expression syntax for GitHub Actions[4]

实践一:博客自动部署

我的博客目前托管在阿里云 OSS 上,以下 action.yaml 描述了自动部署的流程。可以参考我的配置 shfshanyue/blog[5]

「关于托管在阿里云 OSS 的细节,可以参考 在阿里云 OSS 托管你的前端应用[6]」

name: deploy to aliyun oss  on: [push]  jobs:   build:      runs-on: ubuntu-latest      steps:     # 切代码到 runner     - uses: actions/checkout@v1       with:         submodules: true     # 下载 git submodule     - uses: srt32/git-actions@v0.0.3       with:         args: git submodule update --init --recursive     # 使用 node:10     - name: use Node.js 10.x       uses: actions/setup-node@v1       with:         node-version: 10.x     # npm install     - name: npm install and build       run: |         npm install         npm run build       env:         CI: true     # 设置阿里云OSS的 id/secret,存储到 github 的 secrets 中     - name: setup aliyun oss       uses: manyuanrong/setup-ossutil@master       with:         endpoint: oss-cn-beijing.aliyuncs.com         access-key-id: ${{ secrets.OSS_KEY_ID }}         access-key-secret: ${{ secrets.OSS_KEY_SECRET }}     - name: cp files to aliyun       run: ossutil cp -rf .vuepress/dist oss://shanyue-blog/

部署成功

部署成功

实践二:Github Readme 自动生成

2020 年 8 月份,就是我裸辞的那个月,Github 上线了个人主页功能,即创建 Github 用户名的同名 Repo,其中的 Readme.md 就是自己的个人主页。例如我,创建一个 shfshanyue/shfshanyue 的仓库,既可以通过 Readme.md 来创建个人主页

此时涌现了各种各样的 Github Actions 来自定义个人主页,大致思路如下:

  1. 鸿蒙官方战略合作共建--HarmonyOS技术社区

  2. Github API 获取自身 Github 动态,写入指定格式的 Readme

  3. Github Actions 自动提交代码

优秀 Github 个人主页的 Actions[7]

其中一个 waka-readme-stats[8],可制作以下漂亮的个人主页

? I'm Most Productive on Sundays  Monday       50 commits     ███░░░░░░░░░░░░░░░░░░░░░░   13.19% Tuesday      85 commits     █████░░░░░░░░░░░░░░░░░░░░   22.43% Wednesday    56 commits     ███░░░░░░░░░░░░░░░░░░░░░░   14.78% Thursday     44 commits     ███░░░░░░░░░░░░░░░░░░░░░░   11.61% Friday       28 commits     █░░░░░░░░░░░░░░░░░░░░░░░░   7.39% Saturday     30 commits     ██░░░░░░░░░░░░░░░░░░░░░░░   7.92% Sunday       86 commits     █████░░░░░░░░░░░░░░░░░░░░   22.69%

实践三:定时任务的脚本服务器

「这简直是在薅羊毛啊!」

先献上一个使用了 Github Actions 的工具:B 站自动签到工具[9]。

❝

通过 GitHub Actions 实现每日线上自动运行任务:每日自动登录、观看、分享、投币视频,获取每日任务的满额经验,轻松升级 Level 6,实现自动领取大会员权益、月底自动为自己充电等功能。

到此,关于"如何快速掌握Github Actions"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

个人 个人主页 主页 服务器 服务 代码 任务 信息 参考 事件 功能 博客 官方 就是 更多 阿里 学习 实践 配置 前端 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 保险科技 互联网保险 科技互联网企业 科技互联网产品 关于新基建和互联网科技 汇久创客互联网科技 上海致骋互联网科技 广州善班互联网科技 佳云科技和互联网广告 中国航天科技大学国际工业互联网 未来五年的互联网科技 广州市恰铎互联网科技有限公司 互联网科技研发水平 国大互联网教育科技有限公司工作 佛山市翊博互联网络科技有限公司 山东有哪些互联网科技公司 互联网金融科技元年 杭州披云加互联网科技有限公司 福州德业互联网科技 北京互联网科技类企业分布 互联网科技大会大佬 为想互联网科技怎么样 科技互联网龙头 互联网科技与金融科技 高科技与互联网 哈尔滨秒房互联网科技有限公司 成都互联网科技公司100强 北京华百购互联网科技有限公司 注册互联网科技公司经营范围大全 版纳互联网科技选哪家 青岛易易互联网科技
0