본문 바로가기
DevOps/CI_CD관련

CI/CD 관련 찾아봤던 블로그 링크들 및 이전에 구현했던 내용 정리

by 문자메일 2023. 3. 29.

https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/

 

CI/CD가 뭔가요? - 이론편

tecoble.techcourse.co.kr

https://tecoble.techcourse.co.kr/post/2021-10-10-jenkins/

 

CI/CD가 뭔가요? 실전편

지난번 CI/CD가 뭔가요? - 이론편에서 CI/CD에 대해서 알아보았다. 이번 글에서는 jenkins를 이용해 하나의 CI/CD…

tecoble.techcourse.co.kr

https://seosh817.tistory.com/104

 

[CI/CD] CI/CD란? - 지속적 통합(Continuous Integration)/지속적 배포(Continuous Deployment) 기본개념

매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요됩니다. 하지만 git에 코드를 올리는 것만으로도 누군가가 빌드와 테스트, 배포까지 해준다면,

seosh817.tistory.com

 

CI란? 간단히 요약하면 빌드/테스트 자동화 과정이다.

CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다.

CI를 성공적으로 구현할 경우, 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 레퍼지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있다.

 

지속적 통합의 실행은 소스/버전 관리 시스템에 대한 사항을 정기적으로 커밋하여 모든 사람에게 동일 작업 기반을 제공하는 것으로 시작한다.

커밋할 때마다 빌드와 일련의 자동 테스트가 이루어져 동작을 확인하고 변경으로 인해 문제가 생기는 부분을 없도록 보장한다.

지속적 통합은 그 자체로 유익하지만 CI/CD 파이프라인을 구현하기 위한 첫 번째 단계이다.

 

 

-> SVN(VCS) 자체로 CI가 완성되는건 아닌 것 같음, 코드 변경사항은 통합 &  공유는 되지만, 빌드 & 테스트 단계는 VCS 자체로는 구현할 수 없는 기능인듯

--> CI 툴을 설정하기 위해서 VCS가 필요한 것 뒤에서 알게됨!

      CI 툴은 VCS로부터 프로젝트 소스의 메인 브랜치(trunk) 코드를 Check out 받아서 빌드를 수행한다.

      (SVN 에서의 Check out : 형상관리서버에 있는 소스코드를 자신의 PC로 가져오는 것,
       GIT 에서의 Check out : branch 혹은 commit 전환 (switch) / 내용 되돌리기 (restore)

 

      그리고 프로젝트에서 테스트가 설정된게 있으면 빌드 과정에서 테스트를 실행하도록 설정을 하면, 테스트도 실행할 수 있는 것으로 이해가 됨

 

hudson이 제공하는 기능이 뭘까? 젠킨스랑은 다른가?

-> 뒤에 내용 공부하다 보니 젠킨스 이전 버전이 hudson인걸 알게 되었음..

 

이전에 CI/CD 학습했던 내용을 돌이켜보면 깃허브(VCS)에 커밋된 코드'들'을 깃의 main 브렌치에 커밋이 발생하면 발생하는 web hook 이벤트를 젠킨스가 받으면 전체 프로젝트 코드를 젠킨스 저장소에 땡겨온다.

땡겨오고나면 사전에 설정한 build 명령어를 수행하여 빌드를 진행한다.

gradle 명령같이 미리 설정한 build 명령으로 빌드 후,

젠킨스 설정 '빌드 후 조치' 부분에 세팅해놓은 명령으로 빌드 된 결과물을 배포 서버의 특정 path로 전송한다. (이건 CD 부분 역할)

 

아래는 빌드 결과물 생기는 젠킨스 주소 설정하는 부분

젠킨스 서버에서 배포 할 배포서버 주소와 빌드 결과 파일 배포 될 디렉터리 경로 지정하는 부분

 

https://charactermail.tistory.com/378

 

[5,6일차] 젠킨스 CI/CD 구축 중 설정 내용 정리

젠킨스 사용 위하여 하였던 설정 정리 이슈 1. 빌드 할 프로젝트 JDK는 11이였고, 젠킨스 설정 JDK는 8으로 설정되어 있었음. 그래서 젠킨스에서 빌드 시 JDK 버전이 맞지 않아서 에러 발생 C:\Windows\Sy

charactermail.tistory.com

https://charactermail.tistory.com/373

 

스프링부트 CI/CD 자동화 상세하게 정리된 git

https://github.com/jojoldu/springboot-webservice/tree/master/tutorial GitHub - jojoldu/springboot-webservice: 스프링부트로 웹서비스 구축하기 시리즈 스프링부트로 웹서비스 구축하기 시리즈. Contribute to jojoldu/springboot-we

charactermail.tistory.com

 

 

https://1nput0utput.tistory.com/19

 

[CI] Hudson(허드슨)

오늘은 continuous integration tools의 개념과 내가 CI 툴로서 처음 만난 허드슨 얘기를 해볼까한다. ; continuous integration tool이 뭘까? 직역하면 계속적인 통합 도구. 즉 코드의 지속적인 통합을 보조하는

1nput0utput.tistory.com

허드슨이 젠킨스의 이전 버전이다..

위 파란색 박스의 코드 통합은 버전관리 툴을 이용한다. (git, svn)

 

허드슨이 vcs에 커밋된 코드를 통합하고 배포하는 과정을 지원하는 걸로 포스팅 되어 있음. (통합이란.. VCS가 지원하는 기능과 다른 의미일까?, 브렌치 따서 빌드하는걸 통합이라 하는걸까?)

 

https://bcho.tistory.com/172

 

Hudson을 이용한 빌드 배포 테스트 자동화

Hudson을 이용한 빌드와 테스트의 자동화 2007-04-04 BEA Systems Korea Sr consultant Byungwook Cho (bcho@bea.com) Continuous Integration(점진적 통합,이하 CI)이란, 개발자가 각각 개발한 소스코드를 모아서 한꺼번에 빌

bcho.tistory.com

 

CI의 특징

1. 소스코드 일관성 유지

CI툴을 설정하기 위해서는 기본적으로 소스 관리 시스템이 필요하다.

CI툴은 소스 관리 시스템(VCS)으로부터 프로젝트 소스의 메인 브랜치(trunk 라고도 함) 코드를 Check out 받아서 빌드를 수행함.

=> CI툴은 VCS로부터 지정한 브렌치의 코드를 받아서 빌드를 수행함

 

2. 자동 빌드

소스 코드에 대한 빌드는 CI 툴에 의해서  자동적으로 이루어 져야 하낟.

빌드가 이루어지는 시점을 정하는 방법은 두가지가 있다.

2-1. 커밋 발생시 자동 빌드

2-2. 지정한 시간에 진행되는 빌드 (지금 설정은 허드슨에서 10시, 16시에 빌드 돌아가고 있음)

2-3. 자동 테스팅

2-4. 일일 체크아웃과 빌드

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=standcode&logNo=220627439261 

 

허드슨 Hudson 다운로드 및 환경설정

* 사전 작업 1. 프로그램 설치 1) java 1.7 다운로드 설치 : http://www.oracle.com/technetwork/java/java...

blog.naver.com

 

'DevOps > CI_CD관련' 카테고리의 다른 글

젠킨스 설정 과정  (0) 2022.09.24

댓글