Как сделать так, чтобы задание gitlab CI запускалось только вручную на ветках и всегда автоматически на мастере? - PullRequest
1 голос
/ 28 марта 2019

У меня есть задание по страницам, которое я хочу запустить вручную для веток, но автоматически запускается на мастере:

pages:
  stage: deploy
  cache:
    paths:
      - public
  script:
    - scripts/pages.sh
  artifacts:
    paths:
      - public
    expire_in: 2 days

Поэтому я хочу комбинацию:

  only:
    - master
  when: always
  only:
    - branches
  except:
    - master
  when: manual

Это возможно?

1 Ответ

0 голосов
/ 28 марта 2019

Вам нужно будет определить два этапа. Вы можете скопировать / вставить или использовать якоря:

.deploy_stage: &deploy_stage
  stage: deploy
  cache:
    paths:
      - public
  script:
    - scripts/pages.sh
  artifacts:
    paths:
      - public
    expire_in: 2 days

deploy_manual:
  <<: *deploy_stage
  only:
    - branches
  when: manual

deploy_master:
  <<: *deploy_stage
  only:
    - master
...