【发布时间】:2023-01-26 12:42:39
【问题描述】:
几个小时以来,我一直在努力解决这个问题,但我设法找到的任何东西都没有帮助。我正在尝试设置一个 github 操作,它将对每个拉取请求运行测试到 master 以及对 master 分支的任何更改,但仅在 master 分支发生更改时运行部署步骤。
这是我正在尝试做的事情的简单再现。
name: Main
on:
push:
branches:
- "main"
pull_request:
branches:
- "main"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Test
run: echo "running tests"
- name: Deploy
run: echo "Deploying"
if: github.head_ref == 'main'
我已经尝试了在这里/在其他论坛上找到的多个条件,我已经尝试将 if 语句移动到 run 的上方和下方,我完全没有想法。我尝试过的所有操作要么在拉取请求和合并时运行部署步骤,要么在拉取请求和合并时跳过部署步骤。
【问题讨论】:
-
为什么不为部署提供单独的操作脚本?
-
您能否举例说明如何执行此操作?当我尝试这样做时,我仍然处于相同的位置。我正在使用工作流程来触发单独的脚本,但是我无法让它有条件地触发
-
也许我误解了什么,但是 script1 可能是基于推送和 PR 构建的,而 script2 是基于推送构建和部署的?也许有点幼稚而且效率低下(构建步骤需要在两个地方),但似乎工作正常。
-
我确实设法找到了一个可行的条件。 github.event_name == 'master'
标签: github-actions