【发布时间】:2020-03-20 02:31:17
【问题描述】:
我有以下用于 GitHub Actions 的 .github/workflows/ci.yml 文件(删除了一些代码以便更容易理解这个问题):
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 在第 2 项之后同时运行 test 和 deploy-staging 作业。但它只是再次运行 test 而没有运行 deploy-staging。
正如您在上面看到的,即使在推送到staging 之后,它仍然在develop 分支而不是staging 分支上运行它。我有点假设这可能是由于快进合并的一些奇怪行为。但 GitHub 显然认识到我推送到 staging,因为它提出要从该分支创建一个 PR 到 master。
这让我重新思考我的理论,为什么它试图在develop 而不是staging 上运行。
为什么会发生这种情况?有没有办法解决这个问题,所以合并到staging 实际上在staging 而不是develop 上运行工作流?
【问题讨论】:
-
它是否实际运行,即在
development分支上执行deploy-staging作业的任何步骤,或者它只是失败但没有运行任何步骤? Github 操作有一个bug,它将不满足条件的作业标记为失败而不是“未运行”。这就是为什么您需要准确说明发生了什么。还有其他方法可以解决您遇到的问题,但我需要确切知道您遇到了什么。
标签: github github-actions