github 操作中的用户输入(指定 repo 分支等)

Jer*_*ick 9 github github-actions

我想创建一个github操作来创建一个集成测试环境。我们已经有一个可以执行此操作的 dockerized 脚本,但是,环境由 2 个以上的存储库组成。因此,为了在开发过程中使其有效,我们需要指定其他存储库的分支。

例如,假设我在 repo:frontend, branch:my-feature-brach 中有一个 PR。它需要 repo: backend, branch: their-feature-branch。我想从我的 PR 开始构建,它使用该 PR 的分支(在前端存储库中),并询问我将哪个分支用于后端存储库。

这可能吗?

hEn*_*ngi 13

您可以使用输入定义手动可执行的工作流。

on: 
  workflow_dispatch:
    inputs:
      environment:
        description: 'Define env name'     
        required: true
        default: 'prod'
      branch:
        description: 'Define branch name'     
        required: true
        default: 'master'
Run Code Online (Sandbox Code Playgroud)

您可以使用这些预定义的参数,例如:

jobs:
  printInputs:
    runs-on: ubuntu-latest
    steps:
    - run: |
        echo "Env: ${{ github.event.inputs.environment }}" 
        echo "Branch: ${{ github.event.inputs.branch }}"
Run Code Online (Sandbox Code Playgroud)

我认为你可以用它来支持你的用例。更多细节在这里

  • 在这种情况下,了解一些可能有用的信息:“gh”命令行工具可让您调用工作流_并_在命令行上传递输入值。参见 https://cli.github.com/manual/gh_workflow_run (2认同)

dan*_*1st 1

GitHub Actions 可以使用 GitHub API 与 PR 进行交互。

这意味着,您的脚本可以在存储库上创建评论,并且如果 PR 创建者(或任何您想要的人)的评论中提到了分支(您决定格式),它从分支开始测试。

另一种可能性是要求 PR 具有指定的格式(例如,需要branch:<branch>在评论中)。该操作从 PR 描述中提取分支并使用该分支。

请参阅PR 的 GitHub API 文档github 上下文的 GitHub 操作文档(有关 PR 的信息)以供参考。