А не проще сделать, что-бы pre-build выполнялся всегда и build был всегда следом, просто в pre-build добавить условие когда он скипает все действия?
То есть вынести changes: из гитлаба в скрипт. Если гитлаб умеет то, что я хочу, выносить неправильно. А если не умеет, придется.