Запускать рабочий процесс github, только если нажать на указанную c ветку и тег существует - PullRequest
1 голос
/ 23 января 2020

Я хочу запустить рабочий процесс Github, только если код помещен в указанную ветку c и если тег существует, но моя конфигурация (рабочий процесс 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 Ответ

2 голосов
/ 24 января 2020

Так как я не смог найти способ реализовать условие 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

Надеюсь, это поможет кому-то еще.

...