https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/
https://tecoble.techcourse.co.kr/post/2021-10-10-jenkins/
https://seosh817.tistory.com/104
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
https://charactermail.tistory.com/373
https://1nput0utput.tistory.com/19
허드슨이 젠킨스의 이전 버전이다..
위 파란색 박스의 코드 통합은 버전관리 툴을 이용한다. (git, svn)
허드슨이 vcs에 커밋된 코드를 통합하고 배포하는 과정을 지원하는 걸로 포스팅 되어 있음. (통합이란.. VCS가 지원하는 기능과 다른 의미일까?, 브렌치 따서 빌드하는걸 통합이라 하는걸까?)
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
댓글