乐闻世界logo
搜索文章和话题

在GitHub Actions中,如何获取触发器事件的类型作为变量?

7 个月前提问
5 个月前修改
浏览次数34

2个答案

1
2

在GitHub Actions中,您可以使用 github 上下文来获取当前工作流触发事件的类型。github 上下文包含了关于工作流和触发事件的详细信息。特别是, github.event_name 属性可以用来获取触发当前工作流的事件的名称。

例如,如果您想根据不同的触发事件来执行不同的操作,您可以在工作流的步骤中使用这个变量来做条件判断。以下是一个实际的例子:

yaml
name: Example Workflow on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v2 - name: Print event name run: echo "The event that triggered this workflow is ${{ github.event_name }}" - name: Execute command based on event run: | if [ "${{ github.event_name }}" = "push" ]; then echo "This was triggered by a push event" elif [ "${{ github.event_name }}" = "pull_request" ]; then echo "This was triggered by a pull_request event" else echo "This was triggered by some other events" fi

在这个示例中:

  • 工作流被 pushpull_request 事件触发。
  • 有一个步骤使用 github.event_name 来打印触发工作流的事件类型。
  • 接下来的步骤根据触发事件的类型执行不同的命令。

通过这种方式,您可以在 GitHub Actions 中灵活处理不同的事件,并根据事件类型执行特定的工作流逻辑。

2024年6月29日 12:07 回复

在GitHub Actions中,您可以通过使用 GitHub 提供的 github 上下文来获取触发事件的类型。github 上下文包含有关当前工作流运行和触发事件的详细信息。

特别地,为了获取触发器事件的类型,您可以使用 github.event_namegithub 上下文中获取这个信息。这个变量会自动地设置为触发当前工作流的事件名称,例如 push, pull_request, issue, 等等。

下面是一个如何在 GitHub Actions 工作流中使用这个变量的示例:

yaml
name: 示例工作流程 on: push: pull_request: schedule: - cron: '0 12 * * *' jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: 打印触发事件类型 run: echo "该工作流是由 ${{ github.event_name }} 事件触发的。"

在上面的例子中,我们定义了一个名为“示例工作流程”的工作流,它可以被 push, pull_request 事件或者定时调度触发。在工作流中的“打印触发事件类型”步骤,我们使用 echo 命令和表达式 ${{ github.event_name }} 来打印出触发该工作流的事件类型。

这样,无论是由推送、拉取请求还是定时任务触发的,我们都可以清晰地知道是哪种类型的事件触发了工作流。这对于调试或根据不同事件类型执行不同操作是非常有用的。

2024年6月29日 12:07 回复

你的答案