有没有办法通过提交消息值触发特定的 Github 操作工作流程?

Nad*_*iya 8 workflow triggers commit github-actions

有没有办法通过提交消息值触发特定的 Github 操作工作流程?例如,如果我使用提交消息“smoke_test”进行推送,则只有(一个特定工作流程)烟雾测试工作流程应从一组工作流程中触发。请帮忙,谢谢!

fre*_*nky 13

就在这里。如果提交消息包含特定关键字,您可以检查触发事件。

这是一个例子:

name: Smoke tests
on: push

jobs:
 test:
   runs-on: [ ubuntu-latest ]
   steps:
     - name: Run smoke tests
       if: contains(github.event.head_commit.message, 'smoke_test')
       run: |
         echo 'Running smoke tests!'
Run Code Online (Sandbox Code Playgroud)


bru*_*iuz 5

是的。有一种方法。我没有在此链接中找到可用的官方文档以及所用​​脚本语言的 CFG 描述。

我进行的实验表明,您可以使用if关键字来条件Job中的所有步骤。请参阅下面的示例。

与使用条件控制作业执行相比,它更好,因为如果未执行所有步骤,则构建在 GitHub CI 中标记为灰色。

例子

name: My Build.

# The name for workflow runs generated from the workflow, which will appear in the list of workflow.

run-name: ${{ github.actor }} has triggered Build and Launch Unittests for the project 

# Specify the trigger for this workflow.
on: [push]


jobs:
  Build-my-project-for-Linux:
    runs-on: ubuntu-latest
    if: contains(github.event.head_commit.message, 'please build')
    steps:
      - name: Check out repository code
        uses: actions/checkout@v3
      - run: echo " The ${{ github.repository }} repository has been cloned to the runner into " ${{ github.workspace }}
      - run: |
         export CC=/usr/bin/gcc-10
         export CXX=/usr/bin/g++-10
         echo "Etc. for first step"
      - run: |
         echo "Etc. for second step"
Run Code Online (Sandbox Code Playgroud)

附录

官方文档链接

1 https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions

[2] https://docs.github.com/en/actions/using-workflows/about-workflows

GitHub 工作流程中 CI 中使用的术语

工作流程- 是一个可配置的自动化流程,将运行一个或多个作业

事件- 是存储库中触发工作流运行的特定活动。

Runner - 是一个在触发工作流时运行工作流的服务器。每个运行程序一次只能运行一项作业。GitHub 提供 Ubuntu Linux、Microsoft Windows 和 macOS 运行程序。

作业- 是工作流程中在同一运行器上执行的一组步骤。

步骤- 步骤是要执行的 shell 脚本或要运行的操作。

Action - 是 GitHub Actions 平台的自定义应用程序,用于执行复杂但频繁重复的任务。