Я новичок в gitlab-ci и хочу запустить некоторые скрипты на удаленном сервере (я использовал ssh) в зависимости от действий, выполненных на gitlab.Есть 2 сценария:
- Скажем, сценарий A, когда запрос на слияние принят из любой ветви в
develop
ветвь; - Затем я хочу выполнить сценарий B, когда запрос на слияниепринимается из любой ветви в ветку
master
.
Я уже пробовал использовать ключевое слово only: [merge_requests]
в моем файле .gitlab-ci.yml
, как предложено здесь вДокумент, но он не работает, так как задание не запущено.
Вот мой файл:
before_script:
- 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
build:
stage: build
tags:
- alextag
only:
- merge_requests
script:
- echo "Check if merge_request working here"
test:
stage: test
only:
- branches
tags:
- alextag
script:
- sh alex2.sh
- echo "$USER"
Сценарий в задании test
работает отлично, как каждый коммит /нажмите на текущую ветку, но когда я сливаюсь с другой веткой или разрабатываю / осваиваю, задание build
не запускается.
Вы знаете, как сделать это функциональным?Любая помощь приветствуется, спасибо.