GitHub 操作 - 运行 仅当作业由特定 "on" 触发器触发时才执行步骤

GitHub Actions - run step only if job was triggered by specific "on" trigger

我有一个对代码进行检查的操作,运行s 测试何时提交到 master 和拉取请求:

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

我想在最后添加一个“部署”步骤,只有 运行s 当提交到 master 而不是拉取请求触发操作时(理想情况下不会 运行 如果 linting 不成功)。我只需要制作两个单独的文件吗?

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

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' }}

参见:

只要你的 linting 步骤 returns 非 0,它就应该已经失败了。