【GitHub Workflows 基础(一)】认识 .github/workflows/ 下的多个工作流

📘 GitHub Workflows 基础(一):认识 .github/workflows/ 下的多个工作流

🔰 这是 GitHub Actions 系列入门第一篇,我们将带你认识:.github/workflows/ 目录下为什么可以存在多个工作流(workflow),它们之间如何协作,它们的名字到底重不重要?让我们从头开始,一探究竟!


🚀 什么是 GitHub Workflows?

简单说,GitHub Workflows 是放在 .github/workflows/ 目录下的 自动化脚本文件,用于定义当你做某些事情(如提交代码、创建 PR、发布版本等)时,GitHub 要帮你自动完成哪些任务,比如:

  • 自动测试
  • 自动部署
  • 自动构建
  • 自动上传资源
  • 自动生成文档

每个 workflow 就是一套**"自动执行的剧本"**。


🧩 一个项目可以有多个工作流吗?

答案是:当然可以!并且推荐这样做!

你可以把不同任务分开,比如:

bash 复制代码
.github/
  workflows/
    ├── deploy.yml        # 处理部署逻辑
    ├── lint.yml          # 提交代码时进行代码风格检查
    ├── test.yml          # PR 时运行测试用例
    ├── static-assets.yml # 构建静态资源或生成文档

🔧 每个 .yml 文件就是一个独立的工作流(workflow),可以单独触发、单独运行、单独查看日志,互不干扰,非常清晰!


🧠 文件名重要吗?它只是"名字"!

文件名可以任意取,GitHub 根本不关心你叫它啥!

只要放在 .github/workflows/ 目录下,GitHub 会自动识别并读取它。

✅ 合法的例子:

bash 复制代码
.github/workflows/my-workflow.yml
.github/workflows/abc123.yml
.github/workflows/🌈彩虹计划.yml

📌 判断它"何时触发、做什么事情",完全依赖于 .yml 文件中的内容 ,比如 on:jobs:steps: 等。


📄 示例:一个最简单的工作流

yaml 复制代码
# .github/workflows/test.yml
name: Run Tests

on:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: echo "✅ 正在运行测试..."

这个工作流的意思是:

  • 只要有人提交了 Pull Request,
  • GitHub 就会运行这个文件中定义的步骤。

🧬 多个 workflow 会不会冲突?

**不会!**GitHub 会根据每个 workflow 中的 on: 字段来决定:

  • 什么时候触发它
  • 要不要执行它

🧪 举个例子:

yaml 复制代码
# test.yml
on: [push]

# deploy.yml
on: [push]

git push 一次,会同时触发 这两个 workflow,它们并行执行,互不干扰。


🔁 如何控制多个工作流之间的顺序?

默认情况下,它们是并行运行的。

但你可以在 同一个 workflow 的多个 job 中设置依赖:

yaml 复制代码
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo "构建"

  deploy:
    needs: build  # ✅ 表示部署必须等待构建完成
    runs-on: ubuntu-latest
    steps:
      - run: echo "部署"

⚠️ 跨 workflow 的依赖不能直接写 needs:,如果你想控制多个 workflow 的顺序,要使用 workflow_run 触发器(我们后面会讲)。


❌ workflows 目录还能放别的文件吗?

不能!

.github/workflows/ 目录只能放 .yml.yaml 工作流定义文件 ,不能放 .js.py.md、图片等文件。

错误示例:

bash 复制代码
.github/workflows/readme.md    ❌ 不会执行
.github/workflows/helper.py    ❌ 不会执行
.github/workflows/config.json  ❌ 不会执行

🧪 如何查看每个 workflow 的运行情况?

  1. 打开你的 GitHub 仓库
  2. 点击上方的 "Actions" 标签页
  3. 左边会列出所有 workflow(以你 name: 字段命名)
  4. 点击查看运行历史、日志、失败原因等

🧭 目录结构参考

bash 复制代码
.github/
  workflows/
    ├── build.yml          # 构建流程
    ├── deploy.yml         # 自动部署 GitHub Pages
    ├── lint.yml           # eslint 检查
    ├── test.yml           # 自动化测试

✅ 总结一句话

一个项目可以拥有多个工作流,文件名只是"外衣",真正决定这个 workflow 是什么、何时触发、做什么事的,是 .yml 里面的内容。


🔮 下一篇预告

👉 《GitHub Workflows 基础(二):深入理解 onjobssteps 的语法与逻辑》

相关推荐
妙娲种子11 小时前
gittee连接github镜像
gitee·github
无限进步_11 小时前
C语言实现贪吃蛇游戏完整教程【最终版】
c语言·开发语言·c++·git·游戏·github·visual studio
CoderJia程序员甲11 小时前
GitHub 热榜项目 - 日榜(2026-01-21)
ai·开源·大模型·github·ai教程
亮子AI11 小时前
【Github】如何取消 issue 自动加入 project 的功能?
github·issue
徐小夕@趣谈前端12 小时前
【推荐】jitword协同文档新增AI公文助手,一键生成红头文件
vue.js·人工智能·开源·编辑器·github
Allen_LVyingbo12 小时前
用Python实现辅助病案首页主诊断编码:从数据清洗到模型上线(上)
开发语言·python·github·知识图谱·健康医疗
海雅信子13 小时前
上传本地文件到github
github
Cliven_13 小时前
Github自动打包推送Maven中央仓库
java·github·maven
DarrenPig1 天前
【常州工NEC】ROBOCON小白入门之路(二)2026CURC-NEC赛季规划
开源·github·交流·robocon
ccino .1 天前
【将更改从 GitHub Desktop 推送到 GitHub】
github