CI란 Continuous Integration의 약자로, 각각의 개발자의 개발소스를 한번에 통합 빌드하는 과정을 지속적으로 함으로써 따로 어느시점에 코드를 모아서 통합빌드할 필요가 없도록 하는 기법을 말합니다. 이를 활용하면 배포를 위한 빌드와 테스트 단계의 소요시간을 줄일 수 있다고 합니다.
빌드 프로세스를 관리해주는 서버로 대표적으로 젠킨스, Travis CI, Circle CI가 있습니다. 오늘 저는 Travis CI를 이용해 제 SpringBoot 프로젝트에 CI를 적용해보겠습니다.
Travis에 프로젝트를 연동완료하면, master브랜치에 소스코드가 올라갈때마다 자동으로 통합빌드 및 테스트를 진행하여, 수행 결과를 이메일 혹은 텔레그램 등으로 보내줍니다.
new repository
버튼을 클릭합니다.language: java
jdk: oraclejdk8
before_install:
- chmod +x mvnw
before_install에서 chmod +x mvnw를 해주는 이유는 travis내에서 admin 권한을 갖고 있지않아 permission denied에러가 뜨는 경우가 있기 때문입니다.
기본적으로 Travis는 mvn test -B를 실행할 것입니다. 하지만 이외의 다른 command를 사용을 원하실 경우 .travis.yml파일을 수정하여 적용시킬 수 있습니다.
이제 .travis.yml을 commit
하고, push
까지 완료해주세요.
빌드 시작까지 시간이 조금 걸릴 수 있습니다. 기다려도 실행되지않으면 우측상단의 More Options버튼을 클릭 후 Requests를 클릭한 후 다시 기다려주세요.
빌드과정에서 에러 발생시 화면 최하단으로 내려보면 아래와 같이 에러코드가 써있습니다. 에러 발생시 소스코드를 수정 후 다시 커밋앤 푸시해주세요.
build: passing
으로 바뀝니다.이제 이를 저희 README파일에 넣어보겠습니다. 화면에서 build passing
이라 적혀있는 부분을 클릭하시면 이런 화면이 뜹니다.
두번째 선택란을 markdown으로 변경하시고, 3번째 입력칸에 적혀있는 값을 복사합니다.
이제 이를 본인의 README.md파일에서 넣기 원하시는 부분에 붙여넣고 이를 푸시해주면 끝!
위와 같이 status이미지가 README에 나타나는 걸 확인할 수 있습니다!
아직 모르는게 많아 게시글에 잘못된 정보가 있을 수 있습니다. 혹시 잘못된 정보가 있다면, 댓글 혹은 메일로 알려주시면 최대한 빨리 수정하겠습니다!
좋아요!