Skip to content

Dev: Tips & Tricks

2Pit edited this page Nov 3, 2016 · 1 revision

YouTrack и интеграция с github

  • Чтобы YT автоматически изменял статус задаче при коммитах в github нужно в commit-сообщение написать команду специального вида
  • Сама команда выглядит примерно так: #EDY-1234 needs testing, где # - писать обязательно; needs testing - статус, который должен получиться.
  • Важно понимать, что # - означает начало команды, и если сделать Какой-то там заголовок #EDY-1234 (#123) #EDY-1234 needs testing - команда не выполнится, потому что найдя номер задачи в первый раз ютрек не поймет, что с ним надо делать и ничего и не сделает(ну разве что коммит к задаче привяжет).
  • Если хочется закрыть сразу несколько задач, можно написать так:
#EDY-1234 needs testing 
#EDY-1235 needs testing
  • Для того, чтобы YT понял, какой пользователь делает изменение, необходимо, чтобы email пользователя, который делает commit, совпадал с email в YT(Если коммит с локального компьютера - это будет email, прописанный в git-config; если вы делаете merge чужого PR - то email возьмется из github-аккаунта автора реквеста).
  • Ну и под конец важное правило: Статус needs testing ставим задаче только при мерже в develop. Либо, если ожидаете, что Леша протестирует что-то на staging или еще где-то, но тогда стоит написать об этом в задаче.

Git flow как мержить ветки для релиза

  • Для начала нужно сделать git flow init, на все вопросы отвечая дефолтными ответами, кроме:
Hotfix branches? [hotfix/] release/
  • Для code freeze:
git checkout develop
git pull
git flow release start 80
git flow release publish 80
  • Для релиза:
git checkout release/80
git pull
git flow release finish 80

В сообщениях для тега пишем Release 80, остальные оставляем по умолчанию. Для выхода из редактора с сохранением: :wq.

git checkout master
git push
git push origin 80  # публикация тега 80
git checkout develop
git push

Ура, релиз случился!

  • Для hotfix-веток (после release finish всегда сразу делаем ветку для фиксов, при закрытии фикса - делаем ветку для следующего)
git flow hotfix start 80.1
git push -u origin release/80.1  # пушим ветку удаленно и своей говорим смотреть на нее

Завершается все аналогично релизу:

git checkout release/80.1
git pull
git flow hotfix finish 80.1
git checkout master
git push
git push origin 80.1  
git checkout develop
git push