仅当推送到特定分支和标签存在时才触发github工作流

时间:2020-01-23 08:40:58

标签: github github-actions

仅当将代码推送到特定分支并且标签存在时,我才想触发Github工作流,但是我的配置(github工作流)无法按预期工作:

name: Deployment
on:
  push:
    branches:
      - feature/BRANCH-NAME
    tags:
      - *
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions/setup-node@v1
        with:
          node-version: '10.x'

      - name: Install dependencies
        run: |
          npm install

      - name: Lint & build
        run: |
          npm run build

即使标签不存在,也会触发工作流程。

我该如何解决?

1 个答案:

答案 0 :(得分:5)

由于我找不到实现AND条件的方法(即在主服务器上标记为AND),因此我使用了以下解决方法:

name: Worflow demo
on:
  push:
    tags:
      - v*

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1

      - name: Exit if not on master branch
        if: endsWith(github.ref, 'master') == false
        run: exit -1

      - name: Next job ...

如果推送了带标记的(例如,标记v1.0.0)提交,这将触发:

on:
  push:
    tags:
      - v*

第一步(如果不在主分支上,则退出),然后检查当前分支是否未以master结尾并退出工作流(后续测试将不会开始):

- name: Exit if not on master branch
  if: endsWith(github.ref, 'master') == false
  run: exit -1

希望这对其他人也有帮助。