【问题标题】:How to use dawidd6/action-download-artifact with pull_request trigger如何使用 dawidd6/action-download-artifact 和 pull_request 触发器
【发布时间】:2022-04-28 06:54:52
【问题描述】:

这是关于 github 工作流操作 dawidd6/action-download-artifact 的问题。 https://github.com/dawidd6/action-download-artifact没有讨论区,所以在这个论坛问这个问题。

这就是我希望在我的 GitHub 存储库中使用此工作流程的方式:

  1. 已创建拉取请求。
  2. 这会触发一个工作流 - 我们称之为“构建工作流” - 构建整个存储库并上传构建工件。
  3. 然后应该启动另一个工作流 - 我们称之为“测试工作流” - 应该使用 action-download-artifact 下载构建工件并运行一些其他操作。

现在如果我将“测试工作流程”的触发器设置为 pull_request,那么如何让它等待相应的“构建工作流程”完成?我要指定 run_id 吗?

现在我使用“workflow_run”作为运行 WF 的触发器。但是,当创建 PR 时,它不会将“测试工作流程”显示为 PR 的检查之一。你能帮我找出使用下载工件操作的正确方法吗?

【问题讨论】:

    标签: download dependencies github-actions pull-request artifact


    【解决方案1】:

    您可以编写两个工作流程,其中第一个在拉取请求打开或编辑时构建,第二个在拉取请求关闭和合并时执行测试。 HEAD 提交 SHA 可用于识别两个工作流之间的工件名称。

    我将稍微改一下你的要求。

    1. 在打开或编辑拉取请求(例如添加新提交)时构建所有内容并上传工件。
    2. 下载工件并在拉取请求关闭并合并时对其进行测试。

    这里有两个示例工作流程可以实现这一目标。您将需要创建一个令牌以在工作流之间共享工件(请参阅下面的 secrets.GITHUB_TOKEN)。

    构建.yml

    name: Build
      on:
        pull_request:
    jobs:
      Build:
        steps:
          - name: Environment Variables
            shell: bash
            run: |
              ARTIFACTS_SHA=$(git rev-parse HEAD)
              BUILD_ARTIFACTS=BuildArtifacts_${ARTIFACTS_SHA}
              echo "ARTIFACTS_DIR=$ARTIFACTS_DIR" >> $GITHUB_ENV
          - name: Build
            run: make
          - name: Capture Artifacts
            uses: actions/upload-artifact@2
            with:
              name: Artifacts_${{ env.ARTIFACTS_SHA }}
              path: path/to/artifact/
    

    Test.yml

    name: Test
      on:
        pull_request:
          types: [closed]
    jobs:
      Test:
        steps:
          - name: Environment Variables
            shell: bash
            run: |
              ARTIFACTS_SHA=$(git rev-parse HEAD)
              BUILD_ARTIFACTS=BuildArtifacts_${ARTIFACTS_SHA}
              echo "ARTIFACTS_DIR=$ARTIFACTS_DIR" >> $GITHUB_ENV
          - name: Download Artifacts
            uses: dawidd6/action-download-artifact@v2
            with:
              github_token: ${{ secrets.GITHUB_TOKEN }}
              workflow: Build.yml
              name: ${{ env.BUILD_ARTIFACTS }}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      相关资源
      最近更新 更多