Jenkins & SVN or Git & Docker
형상관리는 소프트웨어 개발 및 다른 프로젝트에서 코드, 문서, 구성 요소 등의 변경을 관리하고 추적하는 과정을 말합니다. 이를 통해 개발자나 팀은 프로젝트의 이전 버전과 변경 사항을 관리하고, 협업하며, 문제를 해결할 수 있습니다.
1. CI (Continuous Integration) - 지속적 통합
- 목적: 개발자가 작성한 코드를 정기적으로(종종 하루에도 여러 번) 중앙 저장소에 통합하여 코드 충돌을 최소화하고 빠르게 문제를 발견하는 것.
- 주요 활동:
- 코드 변경 사항을 중앙 저장소에 푸시하면 자동 빌드와 테스트가 실행됨.
- 작은 단위로 자주 통합하여 충돌을 줄이고 코드 품질을 보장.
- 필요한 도구: Jenkins, GitHub Actions, GitLab CI, CircleCI 등.
CI의 주요 단계:
- 코드 병합: 여러 개발자가 각자의 브랜치에서 작업 후 병합.
- 자동화된 빌드: 통합된 코드를 컴파일하고 실행 가능한 상태로 패키징.
- 자동화된 테스트: 유닛 테스트, 통합 테스트 등을 통해 코드 품질 보장.
2. CD (Continuous Deployment/Delivery)
CI 이후 배포와 관련된 부분입니다. 두 가지 접근 방식이 있습니다.
Continuous Delivery - 지속적 배포
- 목적: 코드를 프로덕션 환경에 배포할 준비를 항상 유지.
- 특징:
- 배포 자체는 자동화되지만, 프로덕션 환경으로의 최종 배포는 수동 승인이 필요할 수 있음.
- QA 환경에서 충분히 테스트한 후 릴리스.
Continuous Deployment - 지속적 배포
- 목적: 모든 변경 사항이 테스트를 통과하면 자동으로 프로덕션 환경에 배포.
- 특징:
- 배포 프로세스가 완전 자동화됨.
- 고객이 변경 사항을 즉시 사용할 수 있음.
젠킨스
젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integration) 툴 이라고 표현한다.
다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다.
즉, 자동화 빌드 툴
jenkins linux 설치
1. 다운로드
https://www.jenkins.io/download/
Jenkins download and deployment
Jenkins download and deployment The Jenkins project produces two release lines: Stable (LTS) and regular (Weekly). Depending on your organization's needs, one may be preferred over the other. See the links below for more information and recommendations abo
www.jenkins.io
2. WAR다운
방법 1.
# wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war
방법 2.
위 사이트에서 war를 다운받아 설치하고자 하는 경로에 추가한다.
3. JENKINS 경로 셋팅
저는 리눅스 홈 경로에 어플리케이션이 설치될 app디렉토리 jenkins로그가 남을 logs디렉토리를 생성했습니다.
4. jenkins start, stop
start.sh
JENKINS_ROOT=/app/jenkins
export JENKINS_HOME=$JENKINS_ROOT
java -jar $JENKINS_ROOT/jenkins.war --httpPort=30000 > /logs/jenkins/jenkins.out 2>&1 &
stop.sh
ps -ef |grep java| grep jenkins.war |awk '{print $2}'| xargs kill -9
5. initialAdminPssword 위치
6. SVN플러그인 설치
Available plugins에서 svn검색 후 install
SVN linux 설치
1. svn install
$ sudo apt-get install subversion
2. repos 경로
임의의 경로설정 app 밑에 경로 만든 후
svnadmin create --fs-type fsfs repos
svn 저장소 지정하면 repos경로에 설정관련 파일들 생김
3. SVN start.sh작성
svnserve -d -r /app/svn --listen-port 50000
SVN & Jenkins 연동
1. Freestyle project생성
2. JDK PATH추가
Jenkins & Docker
https://ict-nroo.tistory.com/31
https://noviceany.tistory.com/55
https://roxxy.tistory.com/entry/Jenkins-%EB%B9%8C%EB%93%9C-%EC%9E%90%EB%8F%99%ED%99%94-%EC%84%A4%EC%A0%95
https://choco-one.tistory.com/6
[PROJECT] Jenkins + Docker를 활용한 배포 자동화
➡️ 배포 자동화 도입 이유 프로젝트를 진행하면서 프론트엔드 팀원이 작업한 웹 클라이언트를 디자인 팀원이 체크해야 했다. 하지만 배포과정은 새로운 기능 추가 또는 오류 수정 → 로컬에
choco-one.tistory.com
https://blog.naver.com/slimcdp/221105830459
Jenkins + Gradle + Subversion + Springboot 설정
처음에는 2.7버전 젠킨스로 설치했으나, gradle을 사용한 springboot 프로젝트를 배포할려니 막히는 부분이...
blog.naver.com