GitHub Actions - 仅在作业由特定的“on”触发器触发时运行步骤

3

我有一个操作,当提交到主分支时和在拉取请求时会对代码进行检查和运行测试:

name: My Action

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js 16
        uses: actions/setup-node@v2
        with:
          node-version: 16
      - run: npm install
      - run: npm run lint
      - run: npm test

我想在最后添加一个“部署”步骤,仅在由对主分支的提交触发操作时运行,但不在拉取请求上运行(如果代码检查不成功最好也不要运行)。我是不是只需要创建两个单独的文件?
1个回答

6

您可以在步骤上使用条件语句,在特定情况下关闭它们:

if: ${{ github.event_name == 'pull_request' }}

在你的情况下,你可能想要检查push

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js 16
        uses: actions/setup-node@v2
        with:
          node-version: 16
      - run: npm install
      - run: npm run lint
      - run: npm test
      - run: deploy
        if: ${{ github.event_name == 'push' }}

参见:

只要您的代码检查步骤返回非0值,工作流程就会失败。


谢谢。我还防止了这一步在我的存储库的分支上运行:https://github.com/curlconverter/curlconverter/blob/414a09e78b62f88688130fcdc0a3ee5fd25deb14/.github/workflows/ci.yml#L43 - user3064538

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接