gpt4 book ai didi

continuous-integration - GitHub 工作流中的 `github.event` 有哪些属性?

转载 作者:行者123 更新时间:2023-12-04 11:38:35 24 4
gpt4 key购买 nike

使用GitHub Actions时,可以访问contexts在一个表达式中。上下文之一是 github语境。它有一个属性 github.event ,这是一个对象。
github.event有什么属性对象有?我如何区分例如推送事件和标签创建事件?

最佳答案

要区分不同的事件,您可以随时检查 github.event_name :

jobs:
test:
runs-on: ubuntu-18.04
if: github.event_name == 'push'
github.event的属性取决于触发了什么样的事件。它们记录在 REST API v3 documentation 的“事件类型和有效负载”部分中。 . “ Events that trigger workflows”文档的“Webhook 事件”部分包含指向“Webhook 事件负载”列中每个对象的链接。

例子

您有一个 create事件,因此 github.event_name == 'create' .您可以在 workflow.yml 中访问以下属性(如 Event Types & Payload / CreateEvent 中所述)
  • ${{ github.event.ref_type }}
  • ${{ github.event.ref }}
  • ${{ github.event.master_branch }}
  • ${{ github.event.description }}

  • 完整的工作流程示例

    这是一个单一的工作流,它运行不同的作业,具体取决于它是由推送还是标签创建事件触发的。
  • 对推送和标签创建运行测试
  • 将应用程序打包在任何标签上
  • 当标签以 v 开头时部署应用程序
  • name: CI

    on:
    push:
    branches:
    - master
    create:
    tags:

    jobs:

    test:
    runs-on: ubuntu-18.04

    steps:
    - <YOUR TESTSTEPS HERE>

    dist:
    runs-on: ubuntu-18.04
    if: github.event_name == 'create'

    steps:
    - <YOUR BUILDSTEPS HERE>
    - name: Upload artifact
    uses: actions/upload-artifact@v1
    with:
    name: mypackage
    path: dist

    deploy:
    needs: dist
    runs-on: ubuntu-18.04
    if: github.event_name == 'create' && startsWith(github.ref, 'refs/tags/v')
    # This does the same:
    # if: github.event_name == 'create' && github.event.ref_type == 'tag' && startsWith(github.event.ref, 'v')

    steps:
    - name: Download artifact
    uses: actions/download-artifact@v1
    with:
    name: mypackage
    - <YOUR DEPLOY STEPS HERE>

    请注意 github.refgithub.event.ref不同:
  • github.ref == 'refs/tags/v1.2.5'
  • github.event.ref == 'v1.2.5'
  • 关于continuous-integration - GitHub 工作流中的 `github.event` 有哪些属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59349905/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com