gpt4 book ai didi

GitHub Actions 在错误的分支上运行工作流

转载 作者:行者123 更新时间:2023-12-04 20:03:39 26 4
gpt4 key购买 nike

我有以下 .github/workflows/ci.yml GitHub Actions 的文件(删除了一些代码以使其更容易理解这个问题):

name: CI
on:
push:
release:
types: [published]

jobs:
test:
runs-on: ubuntu-latest
steps:
# ...
deploy-staging:
runs-on: ubuntu-latest
needs: test
if: github.event_name == 'push' && github.ref == 'staging'
steps:
# ...

我经历了以下步骤:
  • develop 上做一些提交分支,并推送这些更改。
  • 在 GitHub Actions 上构建通过后,我从 develop 进行了快速向前合并。进入 staging .

  • 我希望 GitHub Actions 运行 testdeploy-staging第 2 项之后的工作。但它只是运行 test再次不运行 deploy-staging .

    GitHub Actions Workflow Runs

    即使在推送到 staging 之后,您也可以在上面看到它仍然在 develop 上运行它分支而不是 staging分支。我有点假设这可能是由于快进合并的一些奇怪行为。但是GitHub显然认出了我推到了 staging因为它提供从该分支创建 PR 到 master .

    GitHub offering to create a PR for <code>staging</code>

    所以这让我重新思考我的理论为什么它试图在 develop 上运行而不是 staging .

    为什么会发生这种情况?有没有办法解决这个问题,所以合并到 staging实际上在 staging 上运行工作流而不是 develop ?

    最佳答案

    ${{ github.ref }}将是 refs/heads/staging不只是staging .

    在这些情况下,最好的做法是简单地在它之前的步骤中回显您要检查的变量值:

        steps:
    - name: Check inputs
    run: |
    echo github.ref is: ${{ github.ref }}
    echo github.event_name is: ${{ github.event_name }}

    关于GitHub Actions 在错误的分支上运行工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59020994/

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