
Jenkins&Springboot CI/CD 정리 마지막(4) [Gitea & Sonar-bot]
2022. 11. 12. 05:32
DailyStudy/CI CD
Jenkins&Springboot CI/CD 정리(4) 3편에 이어 Jenkins CI/CD 정리 시리즈 마지막 4편을 작성해볼까 합니다. 마지막 편은 오픈소스인 Sonar-bot 과 Community-branch-plugin 을 이용하여 SonarQube의 분석 결과를 Gitea의 PR Comment로 남겨주는 작업입니다. 이번 편은 Sonar-bot이 Gitea를 사용하는 경우에만 해당하며 그 외에 깃헙을 사용하는경우 Community-branch-plugin 설치만 참고를 하시면 좋을 것 같습니다. 우선 Sonar-bot 을 Docker Container 로 띄워 사용을 하게 되었는데 그 이유에 대해 말씀을 드리도록 하겠습니다. SonarQube 에는 Github, Gitlab, Azure, Bit..

Jenkins&Springboot CI/CD 정리(3)
2022. 11. 11. 16:25
DailyStudy/CI CD
Jenkins&Springboot CI/CD 정리(3) 지난 2편에 이어 3편에서는 SonarQube Quality Gate 가 통과되었다는 가정하에 그 이후의 Stage들에 대한 설명을 해볼까 합니다. QualityGate까지의 Stage가 끝나게 되면 분석 결과를 Sonar-bot을 통해 Gitea의 PR comment에 남기게 되지만 이부분은 4편에서 설명드리도록 하겠습니다. 1. Jenkins Server에 Docker 설치 먼저 Jenkins server가 돌고 있는 EC2 인스턴스에 docker를 설치해주도록 하겠습니다. 이 부분은 이전에 작성된 글이 있으므로 해당 글을 참고해주세요. =) 도커(Docker) 설치 & 도커(Docker) 명령어 사용방법 총정리 지난 글에 이어 도커의 명령어와 ..

Jenkins&Springboot CI/CD 정리(2)
2022. 11. 11. 05:33
DailyStudy/CI CD
Jenkins&Springboot CI/CD 정리(2) 우선 지난 1편에서는 위의 서비스 아키텍쳐의 gradle build와 함께 Jacoco, CheckStyle 설정 및 report 파일 생성 까지 모두 마무리 하였습니다. 이제는 Jacoco와 CheckStyle report를 Sonarqube로 넘겨준 후 Quality Gate를 진행하도록 하겠습니다.=) 현재 SonarQube의 분석결과를 오픈소스인 Sonar-Bot을 통해 간단하게 Gitea의 PR comment로 남겨주는 방식이 추가 되었는데 이부분은 설정할 부분이 생각보다 많아 다음편에서 소개를 해드리도록 하겠습니다. =) 1. SonarQube 설치 및 셋팅 필자의 경우 Sonarqube를 AWS EC2 프리티어에서 실행시키기에는 버거운 ..

Jenkins&Springboot CI/CD 정리(1)
2022. 11. 5. 08:57
DailyStudy/CI CD
Jenkins&Springboot CI/CD 정리(1) 필자가 경험한 Springboot 프로젝트와 Jenkins CI 를 활용한 CI/CD 구축에 대해 정리를 해보고자 합니다. =) 이 시리즈에서는 이미 작성된 내용에 대해선 해당 글로 대체 할 예정이니 참고바랍니다. 필자의 경우 Springboot&Gradle 을 이용하였고, SonarQube의 경우 Ec2 프리티어에서 돌리기 버거워 로컬에서 설치 후 공유기 포트포워딩을 통해 Ec2 인스턴스와 연결하였습니다. Nginx 배포 방식은 Blue&Green 배포 방식을 사용하였습니다. =) 해당 JenkinsPipeline의 jenkinsfile은 필자의 Github에 공유되어 있으니 아래 링크를 참고하여 주세요. =) GitHub - 0AndWild/Je..

Jenkins&Sonaqube&Checkstyle 을 이용한 코드컨벤션 적용기(Naver Code Convention)
2022. 11. 3. 01:50
DailyStudy/CI CD
필자의 경우 Jenkins를 이용한 CI/CD를 진행하며 코드 분석 툴로 Jacoco&Sonarqube를 사용하고 있는 상황이며, 더 나은 코드 품질을 위해 Sonarqube의 Rules 설정을 통한 코드컨벤션을 적용하려 합니다. 코드 컨벤션이란 읽기 쉽고, 구조적으로 파악하기 쉬운 코드를 작성하기 위한 코딩스타일 규약이다. 즉, 다른 개발자가 자신이 작성하지 않은 코드를 보더라도 빠르고 쉽게 이해할 수 있도록 가독성을 높여준다. 이로인해 유지보수의 비용을 줄일 수 있다! 먼저 필자가 겪은 상황에 대해 먼저 설명드리도록 하겠습니다. 필자의 경우 코드 컨벤션으로 Naver 코드컨벤션을 적용시켜 보려 하였고 다음 Github 링크를 통해 코드컨벤션 룰이 담긴 xml 파일들을 다운받아 주었습니다. 그 후 소나..

Jenkins & Slack 연동하기(Slack Notification) 및 파이프라인 작성
2022. 10. 27. 06:28
DailyStudy/CI CD
Jenkins & Slack Notification 연동 Slack에서 Jenkins CI 앱을 추가해주면 다음과 같은 웹 사이트로 이동이 되며 설정 지침에 따라 Jenkins 설정을 진행해 주도록 합시다. =) 먼저 Jenkins Server로 들어와 Slack Notification 플러그인을 설치하시고 Slack 연동을 위한 Credential을 등록해주도록 하겠습니다. Kind : Secret text Secret : Slack 웹 사이트에서 발급된 token ID : Jenkins Pipeline에서 환경변수 값으로 받을 이름을 지정해줌 Description : 해당 credential에 대한 부가적인 설명 Workspace : 3단계에 명시되어 있는 팀 하위도메인 이름 Credential : ..

Gitea Webhook Jenkins(Gitea 와 jenkins 연동하기)
2022. 10. 11. 05:32
DailyStudy/CI CD
최근 5일동안 Gitea와 Jenkins Webhook 연결 문제로 삽질을 엄청 많이 했습니다..... =( 혹여나 필자와 같은 상황에 있는 분들을 위해 정리를 해보고자 합니다. 만약 Gitea Jenkins Webhook 관련 연결 실패 때문이신 분들은 아래 기초적인 설정과정을 스킵하시고 맨 밑의 Trouble Shooting 부분으로 넘어가셔도 무방합니다 =) 우선 필자의 상황은 이렇습니다. 사설망에 구축된 Gitea 와 AWS EC2 서버에 구축된 Jenkins를 연결하는 것이였습니다. 이 Webhook 연결을 통해 Gitea에 만든 Repo의 main branch에 Push 또는 merge가 되었을 때 webhook 을 통해 Jenkins 서버에 알리고 Jenkins Pipeline이 trigge..

Jenkins를 이용한 CI/CD Pipeline 구축해보기(3)
2022. 10. 5. 03:51
DailyStudy/CI CD
해당 시리즈는 현재 필자가 연습하고자 하는 서비스 아키텍쳐와 맞지 않아 Springboot 와 Gradle 을 사용한 시리즈를 다시 작성하고 있습니다. 최신 시리즈를 확인하여주시고 이 시리즈는 끝마치지 못한 부분이 있어 설치 부분만 참고를 하시길 바랍니다. (최신 시리즈) Jenkins&Springboot CI/CD 정리(1) Jenkins&Springboot CI/CD 정리(1) 필자가 경험한 Springboot 프로젝트와 Jenkins CI 를 활용한 CI/CD 구축에 대해 정리를 해보고자 합니다. =) 이 시리즈에서는 이미 작성된 내용에 대해선 해당 글로 대체 할 예 0andwild.tistory.com 오늘은 Docker, Tomcat, Ansible, SonarQube 서버를 구축해보겠습니다. ..