github - GitHub Actions 在错误的分支上运行工作流
问题描述
我有以下.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
into进行了快进合并staging
。
我希望 GitHub Actions 在第 2 项之后同时运行test
和deploy-staging
作业。但它只是test
再次运行而没有运行deploy-staging
.
正如您在上面看到的,即使在推送到staging
它之后仍然在develop
分支而不是staging
分支上运行它。我有点假设这可能是由于快进合并的一些奇怪行为。但是 GitHub 显然认识到我推动了它,staging
因为它提供了从该分支创建一个 PR 到master
.
所以这让我重新思考我关于为什么它试图运行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 }}
推荐阅读
- c++ - 将 TPM 公钥序列化为 DER 或 PEM
- r - 更改ggplot2中百分比条的颜色
- javascript - 如何让引导导航栏与用户一起滚动?
- python - 用于重命名和移动文件的 Python、bat 文件和任务计划程序 - 在 Windows 10 中无法正常工作
- prolog - 如何检查指定名称的所有谓词是否具有指定数量的参数?
- android - 有没有办法根据应用程序主题更改初始屏幕颜色?
- uno-platform - 是否有适用于 Uno 平台的 SQLite 示例应用程序?
- assembly - 语法错误:未定义标签:'LABELNAME'
- python - 如何使用 Selenium 从网站获取不同的货币?
- php - 当试图要求一个确实存在的文件时 PHP 给出错误