/* CI 란? */
CI = Continous Integration = 지속적인 통합
개발 과정에서 코드 변경 사항을 지속적으로 통합한다.
풀어 쓰자면, Git 저장소에 코드가 push 되면 CI 도구가 코드를 자동으로 가져와 CI Server안에서 빌드를 하고 테스트를 수행한다.
이 과정에서 사전에 버그를 발견할 수 있다는 이점이 있다.
하지만, CI만 설정할 경우 자동으로 내가 설정한 웹사이트에 반영이되어 배포가 되는 것은 아니다. 이해관해서는 CD = Continous Deployement (지속적 배포) 과정이 시작되어야 한다.
/* Github Actions */
CI 세팅을 위해서는 여러가지 방법이 있는데, Github Actions를 택했다. 방법은 다음과 같다.
- 루트 디렉토리에 .github 파일을 생성한다
- subdirectory에 workflows 파일을 생성한다
- 그 안에 .yml 파일을 생성한다. (이름은 상관 없다)
name: CI
이 파이프라인의 이름을 CI로 설정. 여기서 파이프라인이란 문자그대로 코드와 배포 사이의 pipeline (흐름, 연결)을 말한다.
on: [push]
이 파이프라인은 Git 저장소에 코드가 push 될 때마다 CI가 작동된다 (따로 branch 설정을 안했으므로 모든 branch에 작동된다)
jobs: 작업의 목록을 의미한다. 여기서는 build 작업 하나를 정의하고 있다. runs-on은 이 코드의 실행환경 설정을 의미한다. 여기서는
가상의 Ubuntu 서버에서 실행된다.
steps: 작업의 실행 순서를 의미한다.
-uses: 가상의 서버를 만들고 거기에 코드를 복사를 해야한다. 이 때 Github Actions의 내장 툴인 'checkout'을 사용하여 소스코드를 체크아웃하고 복사한다. v4는 버전을 의미한다.
-name: 순서의 이름을 의미한다. CI서버가 테스트를 할 때 'Set up JDK 17' 이라는 단계를 테스트하겠다고 명시를 한다
-uses: Github Actions의 내장 툴인 'setup-java'를 사용하여 jdk를 설정한다
-with: 위의 setup-java 의 매개변수를 지정한다
--java-version: 17. jdk17 설정
--distribution: 배포판은 corretto를 선택
-name: 이번 순서는 Build with Gradle이라고 정의
-run: run은 가상 환경의 터미널 또는 쉘에서 명령을 실행한다는 뜻이다. 여기서는 ./gradlew build 명령어를 실행한다는 뜻이다
'깃허브' 카테고리의 다른 글
[Git] 브랜치 전략 - Git Flow (0) | 2024.03.29 |
---|---|
[Git] branch merge 전략 (0) | 2024.03.14 |
[Git] 깃 정리 #1 (1) | 2024.02.10 |
[Github] git branch - command에서 가져오기, 병합하기, 삭제하기 (1) | 2023.10.18 |