#git #gitlab-ci-runner
#git #gitlab-ci-runner
Вопрос:
Теперь мой код:
stages:
- status
git:
stage: status
before_script:
- 'which ssh-agent'
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
- mkdir -p ~/.ssh
- echo -e "Host *ntStrictHostKeyChecking nonn" > ~/.ssh/config
script:
- sudo salt-ssh "$MINION_NAME" cmd.run "git --git-dir=/srv/salt/.git --work-tree=/srv/salt/salt status"
# - sudo salt-ssh "$MINION_NAME" cmd.run "git --git-dir=/srv/salt/.git --work-tree=/srv/salt/salt pull"
only:
- master
tags:
- Salt-ssh
Я хочу, чтобы команда git pull выполнялась только тогда, когда git status возвращает информацию о том, что репозиторий не был изменен локально
Кроме того, если git status обнаруживает локальные изменения, могу ли я получить сообщение об ошибке и показать на странице CI, что конвейер не удалось
PS — Я делаю это так, потому что у меня более 15 серверов, и я хочу посмотреть, есть ли локальные изменения, и если их нет, то синхронизируйте репозиторий с источником / мастером
Комментарии:
1. soo
if sudo .... ; then sudo ...; fi
?2. @KamilCuk Как я могу это сделать?
3. ? Буквально
if sudo salt-ssh "$MINION_NAME" cmd.run "git --git-dir=/srv/salt/.git --work-tree=/srv/salt/salt status" ; then sudo salt-ssh "$MINION_NAME" cmd.run "git --git-dir=/srv/salt/.git --work-tree=/srv/salt/salt pull"; fi