프로젝트 연동하기: 두 판 사이의 차이

기술노트
(컴퓨터 과학 용어 정리 - 프로젝트 연동하기 추가)
 
편집 요약 없음
1번째 줄: 1번째 줄:
== [Travis CI] 프로젝트 연동하기 ==
# Travis CI 연동하기


<br>
![Travis 개요](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMIduW%2FbtrfWMtiPEC%2FENLpZFdHhIVcpV31IWNBcK%2Fimg.jpg)


<img src="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMIduW%2FbtrfWMtiPEC%2FENLpZFdHhIVcpV31IWNBcK%2Fimg.jpg">
> **자동화된 테스트 및 빌드 환경을 구축하여 개발자는 코드 품질에만 집중할 수 있도록 하자.**


<br>
---


<syntaxhighlight>
## CI (Continuous Integration)
자동으로 테스트 및 빌드가 될 수 있는 환경을 만들어 개발에만 집중할 수 있도록 하자
</syntaxhighlight>


<br>
CI란 "지속적인 통합"이라는 의미로, 여러 개발자가 작성한 코드를 하나의 저장소에 통합할 때 **자동으로 테스트와 빌드를 수행**하는 프로세스입니다. 이를 통해 코드 병합 시 발생할 수 있는 문제를 빠르게 감지하고, 제품의 품질을 일정하게 유지할 수 있습니다.


===== CI(Continuous Integration) =====
---


코드 버전 관리를 하는 Git과 같은 시스템에 PUSH가 되면 자동으로 빌드 및 테스트가 수행되어 안정적인 배포 파일을 만드는 과정을 말한다.
## CD (Continuous Deployment)


<br>
CD는 "지속적인 배포"를 의미합니다. CI 과정을 거쳐 빌드된 결과물을 운영 환경(서버)에 **자동으로 배포**하는 과정을 말합니다. 수작업 없이도 안정적인 업데이트가 가능해지며, 서비스의 변경 사항을 빠르게 사용자에게 전달할 수 있습니다.


===== CD(Continuous Deployment) =====
---


빌드한 결과를 자동으로 운영 서버에 무중단 배포하는 과정을 말한다.
## Travis CI 웹 서비스 설정하기


<br>
1. [Travis CI](https://www.travis-ci.com/) 사이트에 접속하여 GitHub 계정으로 로그인합니다.
2. `Settings` 메뉴에서 프로젝트를 선택한 후, Travis 연동을 활성화합니다.
3. 활성화된 저장소의 루트 디렉토리에 `.travis.yml` 파일을 생성합니다.


==== Travis CI 웹 서비스 설정하기 ====
![Travis 설정 스크린샷](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpCgp3%2Fbtrf1hF3DBd%2F6y2x40HdH0Ko8ZUB4kHV90%2Fimg.jpg)


[Travis 사이트](https://www.travis-ci.com/)로 접속하여 깃허브 계정으로 로그인 후, `Settings`로 들어간다.
---


Repository 활성화를 통해 CI 연결을 할 프로젝트로 이동한다.
## `.travis.yml` 기본 설정 예시


<br>
```yaml
 
<img src="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpCgp3%2Fbtrf1hF3DBd%2F6y2x40HdH0Ko8ZUB4kHV90%2Fimg.jpg">
 
<br>
 
<br>
 
==== 프로젝트 설정하기 ====
 
세부설정을 하려면 `yml`파일로 진행해야 한다. 프로젝트에서 `build.gradle`이 위치한 경로에 `.travis.yml`을 새로 생성하자
 
<syntaxhighlight>yml
language: java
jdk:
  - openjdk11
 
branches:
  only:
    - main
 
== Travis CI 서버의 Home ==
cache:
  directories:
    - '$HOME/.m2/repository'
    - '$HOME/.gradle'
 
script: "./gradlew clean build"
 
== CI 실행 완료시 메일로 알람 ==
notifications:
  email:
    recipients:
      - gyuseok6394@gmail.com
</syntaxhighlight>
 
* `branches` : 어떤 브랜치가 push할 때 수행할지 지정
* `cache` : 캐시를 통해 같은 의존성은 다음 배포하지 않도록 설정
* `script` : 설정한 브랜치에 push되었을 때 수행하는 명령어
* `notifications` : 실행 완료 시 자동 알람 전송 설정
 
<br>
 
생성 후, 해당 프로젝트에서 `Github`에 push를 진행하면 Travis CI 사이트의 해당 레포지토리 정보에서 빌드가 성공한 것을 확인할 수 있다.
 
<br>
 
<img src="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwMGb1%2FbtrfXzHcn2G%2FFjODgalLKrzYNvsx5COlxK%2Fimg.jpg">
 
<br>
 
<br>
 
===== ''만약 Travis CI에서 push 후에도 아무런 반응이 없다면?'' =====
 
현재 진행 중인 프로젝트의 GitHub Repository가 바로 루트 경로에 있지 않은 확률이 높다.
 
즉, 해당 레포지토리에서 추가로 폴더를 생성하여 프로젝트가 생성된 경우를 말한다.
 
이럴 때는 `.travis.yml`을  `build.gradle`이 위치한 경로에 만드는 것이 아니라, 레포지토리 루트 경로에 생성해야 한다.
 
<br>
 
<img src="https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzdMai%2Fbtrf1iEWSaG%2Fq2FZkc3HXXo0Nnes2MYegk%2Fimg.jpg">
 
<br>
 
그 이후 다음과 같이 코드를 추가해주자 (현재 위치로 부터 프로젝트 빌드를 진행할 곳으로 이동이 필요하기 때문)
 
<syntaxhighlight>yml
language: java
language: java
jdk:
jdk:
109번째 줄: 40번째 줄:
     - main
     - main


== ------------추가 부분---------------- ==
# Travis CI의 캐시 디렉토리 설정 (속도 향상)
 
before_script:
  - cd {프로젝트명}/
 
== ------------------------------------ ==
 
== Travis CI 서버의 Home ==
cache:
cache:
   directories:
   directories:
122번째 줄: 46번째 줄:
     - '$HOME/.gradle'
     - '$HOME/.gradle'


# 실제 빌드 명령어
script: "./gradlew clean build"
script: "./gradlew clean build"


== CI 실행 완료시 메일로 알람 ==
# 빌드 결과 이메일 알림
notifications:
notifications:
   email:
   email:
     recipients:
     recipients:
       - gyuseok6394@gmail.com
       - gyuseok6394@gmail.com
</syntaxhighlight>
<br>
<br>
===== [참고 자료] =====
* [링크](https://github.com/jojoldu/freelec-springboot2-webservice)
<br>

2025년 4월 17일 (목) 16:21 판

  1. Travis CI 연동하기

![Travis 개요](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMIduW%2FbtrfWMtiPEC%2FENLpZFdHhIVcpV31IWNBcK%2Fimg.jpg)

> **자동화된 테스트 및 빌드 환경을 구축하여 개발자는 코드 품질에만 집중할 수 있도록 하자.**

---

    1. CI (Continuous Integration)

CI란 "지속적인 통합"이라는 의미로, 여러 개발자가 작성한 코드를 하나의 저장소에 통합할 때 **자동으로 테스트와 빌드를 수행**하는 프로세스입니다. 이를 통해 코드 병합 시 발생할 수 있는 문제를 빠르게 감지하고, 제품의 품질을 일정하게 유지할 수 있습니다.

---

    1. CD (Continuous Deployment)

CD는 "지속적인 배포"를 의미합니다. CI 과정을 거쳐 빌드된 결과물을 운영 환경(서버)에 **자동으로 배포**하는 과정을 말합니다. 수작업 없이도 안정적인 업데이트가 가능해지며, 서비스의 변경 사항을 빠르게 사용자에게 전달할 수 있습니다.

---

    1. Travis CI 웹 서비스 설정하기

1. [Travis CI](https://www.travis-ci.com/) 사이트에 접속하여 GitHub 계정으로 로그인합니다. 2. `Settings` 메뉴에서 프로젝트를 선택한 후, Travis 연동을 활성화합니다. 3. 활성화된 저장소의 루트 디렉토리에 `.travis.yml` 파일을 생성합니다.

![Travis 설정 스크린샷](https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpCgp3%2Fbtrf1hF3DBd%2F6y2x40HdH0Ko8ZUB4kHV90%2Fimg.jpg)

---

    1. `.travis.yml` 기본 설정 예시

```yaml language: java jdk:

 - openjdk11

branches:

 only:
   - main
  1. Travis CI의 캐시 디렉토리 설정 (속도 향상)

cache:

 directories:
   - '$HOME/.m2/repository'
   - '$HOME/.gradle'
  1. 실제 빌드 명령어

script: "./gradlew clean build"

  1. 빌드 결과 이메일 알림

notifications:

 email:
   recipients:
     - gyuseok6394@gmail.com