올챙이시절 기록소

빌드시스템 트러블 슈팅 "git tag -d" ( 개발자가 Push한 Tag에 오타가 있는 경우 ) 본문

2017/9월

빌드시스템 트러블 슈팅 "git tag -d" ( 개발자가 Push한 Tag에 오타가 있는 경우 )

allroundplayer 2017. 9. 19. 13:15

2016년 5월, 형상관리정책을 (열심히) 만들었다





브랜치는 아무렇게나 막쓰고 있던 시점이라 깔끔하게 포기하고!


Tag 만으로 다 할 수 있는 시스템을 만들고 위와 같이 규칙을 만들었다.






개발자가 Tag를 달아서 QA에게 보낼 때,


1차적으로 정규표현식으로 거른다.


grep -E "${CONF_ITEM}\_[0-9]{6}[\.][0-9]{2}"


이제 오타는 완벽히 거른다 생각했지만!


한 순간의 착각이다


170918.01 -> 270918.01)


 이와 같이 날짜를 잘못 기입해서 tag를 달아 보내는 경우가 있다


현 빌드시스템의 로직상에는 이러한 tag값이 굉장히 문제가 된다.


( * 알림도 개판으로 가고, DB에 저장도 안되고 ... )


따라서 복구작업이 필요하다.



먼저, 문제가 되는 태그를 지워줍니다~


0



이렇게 ..!   "git tag -d mfobuild_270918.01" 








그럼 어디에서?


Git, 이 녀석은 distributed (version control system ) 분산형이다~


( 자세한 설명은 생략..! 별로 재미없다 )


분산형이니까 저장소마다 지워야한다.


1. 개발자에게 말하고, 해당 태그를 지운다.


2. Git repo에도 하나 지운다. CentOS6 & Gitlab의 경우 저장소위치는 다음과 같다.


/var/opt/gitlab/git-data/repositories/그룹 or Username/Project_Name or 형상항목



3. 빌드 서버(117번 svr)에서도 지운다.  


( Git fetch --tag 명령을 수행을 했을 경우 - 무슨말인지 모르면 그냥 수행하자. )



C:\Multi-Runner\Project_Name or 형상항목




git tag관련 내역은 이렇게 지우면 끝...!














DB내 테이블에서도 해당 tag값으로 insert 되거나


이후 tag값들이 입력되지 못한 내역이 있다면 처리해야한다.;


1) mfo_tag_part


2) mfo_git_comment












마지막으로 개발자의 Push중 tag를 체킹하는 녀석에게 태그가 삭제된 만큼 현상태를 설정파일에 적는다.


.mxctl/tag_checker.conf

[root@DEVQA101 .mxctl]# cat tag_checker.conf 

TAG_COUNT1[mfdsql]=9

.

.

.

중략

TAG_COUNT1[mfonp]=28

TAG_COUNT1[mfobuild]=79

문제가 되었던 녀석에 count 값을 조정한다. 

하나 지웠으니 -1 해준다.












Comments