본문 바로가기

전체 글53

1. Gerrit <-> Jenkins 연동 ** Jenkins 가 무엇이고 , 왜 필요하고, 왜 게릿과 연동해야 되는지는 젠킨스 페이지([젠킨스 (Jenkins)] - Jenkins 란?)에서 자세히 다뤄보겠다. 여기서는 게릿,젠킨스를 다 안다고 가정한다. ** 게릿 코드리뷰에 Jenkins 가 더해진 workflow 는 아래와 같다. 코드 리뷰 과정에서 CI/CD 를 통한 코드의 안정성 확보는 필수다. (사실 이 부분때문에 AriServer 를 구축하게 되었다) 이 장에서는 Jenkins 에서 Gerrit review 에 올라온 수정사항을 빌드해서 해당 리뷰에 Verified+1/-1 점을 주는 과정에 대해서 자세히 알아보자. 이 페이지의 처음부터 끝까지 가슴에 새겨야할 한 문장이 있다. ***Jenkins 는 Gerrit 입장에서는 또다른 개.. 2023. 10. 17.
2. Gerrit <-> Jira 연동 Jira 는 이슈 관리 시스템이다. (이것도 별도 페이지에서 자세히 다뤄보자) 많은 SW 회사들이 Atlassian 사의 Jira 시스템을 이용해서 프로젝트 관리를 하고 있다. 참고로 Jira 와 Github 는 쉽게 연동이 가능하다. 지라 클라우드(JIRA Cloud) 와 깃허브(github) 연동하기 이 둘을 연동한다는 의미는 아래와 같다. 1. Jira 의 개별 이슈에 가서 보면 Gerrit 변경을 알 수 있다. 2. Gerrit 리뷰시에 Jira에 해당 이슈가 있는지 확인하고 바로 링크를 걸 수 있다. 차근차근 알아보자. (Tistory 는 2depth 까지만 카테고리를 허용한다. 이건 뭐.... 그래서 글 분류하는게 매우 어렵다. 여기에서 추가 하소연 -> [넋두리] - 티스토리 개불편] [Ge.. 2023. 10. 17.
3. Jira 에서 Gerrit 연동 결론적으로 돈이 든다. Github 는 Jira 에 공짜 앱(플러그인) 이 있지만, Gerrit 은 없다. 그나마 가장 좋은 앱이 Git Integration for Jira Cloud 기능은 참 좋다. 유료 버전 결제하면 자세히 포스팅 하겠다. 4. Gerrit 에서 Jira 연동 1/3 - Jira API 토큰 발급 2023. 10. 17.
4. Gerrit 에서 Jira 연동 1/3 - Jira API 토큰 발급 Gerrit 에서 Jira 에 접근하기 위해서는 일반 [ user id+password ]의 조합으로 접근하는게 아니라 [ user id + API 토큰 ]의 조합으로 접근해야 한다. 이걸 몰라서 정말 많이 헤맸다. 게릿에서 Jira 를 접근하기 위해서 제일 먼저 할일은 Jira 에서 API 토큰을 발급받는 일이다. Jira API 토큰 발급 1. [Jira → 프로필 → 계정관리 → 보안 → API 토큰 → API 토큰 만들기 및 관리] 로 이동 2. 토큰을 만드는 팝업이 뜨고 자유롭게 이름을 만들고 [만들기] 클릭 3. 토큰 복사 바로 토큰이 발급되고 [복사] 를 하게 해준다. ※이 단계 외에는 복사할수가 없으니 여기서 반드시 복사해 두어야 한다. 단계를 마치면 잘 생성되어 있다. 복사한 토큰을 로컬.. 2023. 10. 17.
5. Gerrit 에서 Jira 연동 2/3 - Jira configuration 셋업 1. 플러그인 설치 Jira 를 연동하기 위해서는 2개의 플러그인이 필요하다. 플러그인 git 에서 its-base / its-jira 를 찾는다. 두개를 빌드하고 설치한다. (플러그인의 빌드 및 설치는 플러그인 페이지 참조 : [곧 포스팅 하겠다, 이걸 먼저 했어야 되는데..... 쩝....]) 2. configuration 셋업 Jira 설정을 위해 gerrit 초기화 실행 gerrit.war init -d /opt/gerrit/gerrit 초기 단계는 다 필요없으니 계속 패스하자. 1번 플러그인을 설정하면 아래처럼 Jira 설정하는 단계가 자동으로 추가가 된다. Jira connectivity 설정 Jira URL : 말그대로 Jira URL 을 넣는다. 우리는 https://aribio.atlas.. 2023. 10. 17.
6. Gerrit 에서 Jira 연동 3/3 - Gerrit 커밋 메시지에 Jira 이슈 hyperlink 시키기 Gerrit 에서 Jira 를 연동시킨다는것이 어떤 의미일까? 결과적으로 Gerrit 의 어딘가에서 Jira 로 바로 갈 수 있는것을 의미한다. 더 정확히는 Gerrit 의 웹 리뷰에서 Jira 의 해당 issue 로 링크가 걸려야 한다. 이를 위해서는 2가지 단계를 거친다. 1. 커밋 메시지에 강제된 Jira issue id 가 Jira 에 존재하는지 유효성 체크 2. 유효하다면 , 게릿의 커밋 메시지 부분을 Jira issue 에 대한 hyperlink 로 적용 이것을 해주는게 its-jira 플러그인의 역할이다. 그래서 Gerrit CI 빌드에서 its-jira.jar 를 다운받아 적용했다. (이미 빌드된 산출물을 이용한 플러그인 적용은 [Gerrit forge] 페이지 참조 : [Gerrit/Ge.. 2023. 10. 17.
1. Gerrit 설치 이제 Gerrit 을 설치해보자. 자세한 설명은 NAVER 형님들이 잘 해 놓으셨다. (Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 시스템 설치 ) (GitHub 처럼 Gerrit 도 GerritHub 가 있다. Gerrit 을 특별히 customizing 할 필요가 없는 상황이라면 GerritHub 로도 코드리뷰는 충분히 할 수 있다. 다만 내꺼가 아니다보니 내 상황에 맞게 지지고 볶지를 못해 안타까움을 느끼게 된다. 그런 상황이라면 이제부터 따라가는거 추천) 항상 모든 셋업이 그렇듯이, 설치 자체는 큰 어려움이 없다. 설치 후 각종 셋팅을 셋업하는것이 우리를 힘들게 한다. 추후 서버가 날라갈것을 대비해 백업 및 복습 차원에서 기록을 남겨보자. 1. 사전 준비 Git 설치 : Gerrit 은 .. 2023. 10. 17.
2. Gerrit Web 설정 서버에 게릿을 설치까지 했다. 설치를 했다는 의미는 게릿이라는 자바 웹 프로그램을 서버에 설치해서 로딩(서버 브라우저에서 localhost 로 접속) 시켰다는 의미다. 이제 이 게릿을 다른 PC에서 웹주소로 접근가능하게 만들어야 한다. (웹 페이지이므로) 이 부분은 게릿에 대한 지식보다는 Web Server 에 대한 지식이 필요하다. 방화벽(firewall)이 뭔지, Proxy 가 뭔지, http(s) 가 뭔지, DNS 가 뭔지, …. 이런 사전 지식이 아무것도 없었던 나의 삽질. 아래 두개 사이트를 메인으로 보면서 삽질했다. (얼마나 많은 사이트를 봤는지 헤아릴수가 없다…) NAVER 형님들 : Gerrit을 이용한 코드 리뷰 시스템 - 코드 리뷰 시스템 설치 Whatman 이라는 고수 : Gerrit.. 2023. 10. 17.
3. Gerrit 사용자 인증 설정 앞에서도 잠깐 언급했지만 Gerrit 은 사용자 인증 기능을 제공하지 않는다. 대신 외부의 인증 기능들을 연동시킬수 있는데, 우리는 제일 간단한 http 인증(Apache 웹서버 인증) 기능을 사용한다. Gerrit 이 Apache 웹서버 인증 기능을 사용하게 하기 위해서 AuthUserFile 옵션에 명시된 파일에 인증 정보들을 저장하면 된다. 인증 정보를 저장하는 파일은 Apache 웹 서버의 htpasswd 명령어로 생성하면 된다. # 명령어 사용법 : htpasswd -c [파일 이름] [계정 이름] $ cd /etc/apache2/conf $ sudo htpasswd -c passwords AriGerrit New password: Re-type new password: Adding passwo.. 2023. 10. 17.
4. Gerrit Email 설정 Gerrit 은 메일을 참 많이 보낸다. 최초 회원가입 후 이메일 verification 부터 리뷰를 등록한 사람, 리뷰어로 지정된 사람에게 끊임없이 메일을 보낸다. Gerrit 이 이런짓을 할 수 있도록 SMTP 설정을 해야 한다. 쉬워 보였지만, 절대 쉽지 않았다. 그 어디에도 자세한 설명이 없었다. 띄엄띄엄 정보는 있지만 한방으로 이어준 정보가 없었다. 어느 사이트에서는 TLS로 설정하라고 하고, 어느 사이트에서는 SSL 로 설정하라는등 제각각이다. 정리해보자. 1. 전용 계정 생성 메일을 정말 많이 주고받기 때문에 사용하는 메일로 해서는 감당이 안된다. 별도 계정을 하나 팠다. arigerrit.noreply@gmail.com 2. Gerrit config 설정 시도 초기화시에 아래처럼 입력하는 .. 2023. 10. 17.
5. Gerrit Repository 생성 및 삭제 앞장까지 Gerrit 을 서버에 다 구축했고, 팀원들을 가입시켜서 일을 할 수 있는 환경이 되었다. 이제 본격적으로 Gerrit 을 통해 일을 시작해 보자. 1. Gerrit Repository 생성 일을 하기 위해서는 제일 먼저 project 를 만들어서 팀 공용 공간을 만들어야 한다. Home->BROWSE->Repositories 로 이동 [CREATE NEW] 선택 Repository name 과 Default Branch 를 원하는 대로 채우고 CREATE ※ Github 는 2020년부터 기본 브랜치 명을 master 에서 main 으로 변경했다. master/slave 가 백인 우월주위, 인종차별적이라는 지적에서다. 자세한건 여기서 -> GitHub - github/renaming: Guid.. 2023. 10. 17.
1. 코드 리뷰 새로 이직한 회사에 소프트웨어 개발 시스템을 구축해야 할 일이 생겼다. (이전 회사는 다행히도 대기업이었다)규모가 크지 않은 회사이기도 하고 소프트웨어 개발이 주업이 아닌 회사라서 소프트웨어 관련 인프라가 전혀 없었다.어디서부터 손을 대야 할지 막막했다. 아무것도 없다면...가장 먼저 갖추어야 될건 무엇일까...?SW 개발자라면 소스 코드가 자신의 생명과도 같은 것이니, 이 코드 관리가 제일 우선 되어야 하지 않을까? 처음 맞이한 소스 코드 관리 실태는 처참했다. (내 직장을 욕보일 수 있어 자세한 건 생략)하루빨리 형상 관리 툴을 도입하고 이런 저런 인프라를 만들어야 한다는 생각이 들었다. 그런데....인프라가 갖춰지면 과연 다음 스텝을 나갈 수 있을까? 란 의구심이 들었다.인프라도 인프라지만, 오랫동.. 2023. 10. 17.