Github actions 如何在合并到master时只运行一个步骤

Bre*_*dan 5 github-actions

我几个小时以来一直在努力解决这个问题,但我找不到任何帮助。我正在尝试设置一个 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'
Run Code Online (Sandbox Code Playgroud)

我尝试了在这里/其他论坛上找到的多个条件,我尝试移动if上面和下面的语句,run我完全没有想法。我尝试过的所有操作要么在拉取请求和合并上运行部署步骤,要么在拉取请求和合并上跳过部署步骤。

Grz*_*ski 7

只需使用:

github.ref == 'refs/heads/master'

或者:

github.ref == 'refs/heads/main'

取决于您要检查的分支