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' }}
参见:
- https://docs.github.com/en/actions/learn-github-actions/contexts#example-usage-of-the-github-context
只要你的 linting 步骤 returns 非 0,它就应该已经失败了。
我有一个对代码进行检查的操作,运行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' }}
参见:
- https://docs.github.com/en/actions/learn-github-actions/contexts#example-usage-of-the-github-context
只要你的 linting 步骤 returns 非 0,它就应该已经失败了。