0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · 课时

工作流触发器与事件

探索可触发 GitHub Actions 工作流的各种事件,例如推送、拉取请求和计划事件

工作流触发器与事件 是 CoddyKit 上的免费 CI/CD with GitHub Actions & DevOps Pipelines 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 CI/CD with GitHub Actions & DevOps Pipelines 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 CI/CD with GitHub Actions & DevOps Pipelines 课程共包含 4 节课。

什么会启动工作流

GitHub Actions 中的工作流不会自行运行。它们需要一个启动信号!这个信号称为触发器。

触发器是特定的事件,用于告诉 GitHub Actions:“嘿,有事情发生了!是时候运行这个工作流了。”理解触发器是有效自动化开发流程的关键。

“on”关键字

在您的工作流文件中(即 .github/workflows 目录中的 .yml 文件),您可以使用 on 关键字定义触发器。

这一部分会告诉 GitHub Actions 工作流何时执行。您可以指定一个或多个事件。

name: My First Triggered Workflow

on:
  push: # This workflow will run on every push event

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Run a simple command
        run: echo "Workflow triggered!"

响应代码推送

push事件是最常见的触发器之一。每当代码被推送到您的仓库时,它就会触发,无论是新的提交还是合并。

默认情况下,push触发器会对所有分支运行。

on: push

jobs:
  greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Say Hello
        run: echo "Code was pushed!"

定向处理推送

您可以进一步限制 push 触发器,使其仅在特定分支上发生推送,或仅在特定文件路径中的内容发生更改时运行。这有助于优化工作流。

  • branches:仅在向特定分支名称推送时运行。
  • paths:仅在指定目录中的文件发生更改时运行。
on:
  push:
    branches:
      - main
      - 'feature/*' # Glob pattern for feature branches
    paths:
      - 'src/**' # Only if changes in src/ directory

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Push to relevant branch/path detected!"

自动化拉取请求检查

pull_request事件会在拉取请求创建、同步(向 PR 分支推送新的提交)或重新打开时触发。

它非常适合在更改合并到主代码库之前运行测试、代码检查或代码审查等自动化检查。

on: pull_request

jobs:
  pr_check:
    runs-on: ubuntu-latest
    steps:
      - name: PR opened/updated
        run: echo "A pull request was opened or updated!"

特定的 PR 操作

您可以通过指定 types 进一步限制 pull_request 触发器。这样,您的工作流就只会响应与拉取请求相关的特定操作。

  • opened:创建新的拉取请求时。
  • synchronize:向 PR 的分支推送新提交时。
  • reopened:重新打开已关闭的拉取请求时。
on:
  pull_request:
    types: [opened, synchronize, reopened] # Run only on these PR actions

jobs:
  pr_review:
    runs-on: ubuntu-latest
    steps:
      - run: echo "PR action: ${{ github.event.action }}"

基于时间的触发器

schedule 事件允许您使用cron 语法在特定时间运行工作流。这非常适合每日报告、清理任务或定期检查。

Cron 语法使用五个星号,分别表示:minute hour day-of-month month day-of-week。

on:
  schedule:
    - cron: '0 0 * * *' # Run daily at midnight UTC
    - cron: '0 12 * * 1-5' # Run at 12 PM UTC, Mon-Fri

jobs:
  scheduled_task:
    runs-on: ubuntu-latest
    steps:
      - run: echo "Scheduled workflow running!"

手动运行工作流

有时您需要手动运行工作流,例如进行部署或执行特定的维护任务。workflow_dispatch 事件可以实现这一点。

存在此触发器时,该工作流的 GitHub 界面中会出现一个“运行工作流”按钮,允许您按需触发工作流。

on: workflow_dispatch

jobs:
  manual_task:
    runs-on: ubuntu-latest
    steps:
      - run: echo "This workflow was triggered manually!"

超越基础知识

虽然 push、pull_request、schedule 和 workflow_dispatch 最为常见,但 GitHub Actions 还提供许多其他事件触发器。

  • workflow_call:用于创建可复用的工作流。
  • repository_dispatch:用于通过 API 调用从外部系统触发工作流。
  • 还有许多针对特定 GitHub 事件的触发器(例如 issues、release、fork)。

触发器挑战

您需要设置一个工作流,使其每周五 UTC 时间下午 5 点自动生成一份周报,无论是否有代码更改。对于此任务,最合适的触发器事件是什么?

触发器复习

您对 GitHub Actions 触发器的探索做得很好!您已经了解到,工作流可以由各种事件启动:

  • push:用于处理推送到仓库的更改。
  • pull_request:用于处理与拉取请求相关的操作。
  • schedule:用于使用 cron 执行基于时间的定期任务。
  • workflow_dispatch:用于从界面或 API 手动执行。

选择正确的触发器,是构建高效 CI/CD 流水线的第一步!

常见问题解答

「工作流触发器与事件」课时是免费的吗?

是的 — 「工作流触发器与事件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 CI/CD with GitHub Actions & DevOps Pipelines 课程的其余内容,请升级到 CoddyKit PRO。 CI/CD with GitHub Actions & DevOps Pipelines 课程共包含 4 节课。

「工作流触发器与事件」这节课中我会学到什么?

探索可触发 GitHub Actions 工作流的各种事件,例如推送、拉取请求和计划事件 你通过在浏览器中直接运行的动手代码来练习 CI/CD with GitHub Actions & DevOps Pipelines,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 CI/CD with GitHub Actions & DevOps Pipelines 需要有经验吗?

无需任何先前经验。CoddyKit 上的 CI/CD with GitHub Actions & DevOps Pipelines 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「工作流触发器与事件」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 CI/CD with GitHub Actions & DevOps Pipelines 课中编写并运行代码吗?

能。每节 CI/CD with GitHub Actions & DevOps Pipelines 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 工作流触发器与事件
  2. 使用 GitHub Actions 运行测试
  3. 代码检查与质量检查
  4. 缓存依赖以加快构建
← 返回 CI/CD with GitHub Actions & DevOps Pipelines