Я использую инструмент непрерывной доставки gocd + git. Мой проект состоит из множества подпроектов. Я не хочу перестраивать все подпроекты при каждой фиксации и, таким образом, создавать один конвейер для каждого подпроекта. Я знаю, что для каждого конвейера, скажем, для проекта1, я должен выбрать соответствующий рабочий каталог и запустить что-то вроде этого:
- получить git commit, который запустил сборку gocd.
- определить, содержат ли изменения в этой фиксации папку project1
- если изменения во всем проекте также повлияли на папку проекта1, запустите пользовательскую команду сборки для проекта1.
Как я могу получить фиксацию от gocd, которая запустила текущую сборку? Это просто последняя фиксация git или нет? Я думаю, что последний коммит не является безопасным вариантом в случае множества одновременных коммитов, поэтому я хочу получить его непосредственно из gocd - я надеюсь, что он сохраняет его для каждого события триггера сборки. Как обнаружение фиксации влияет на папку в bash?