본문 바로가기

깃허브

[Git] Github Actions - CI 작성

728x90

 

/* 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 명령어를 실행한다는 뜻이다

 

 

728x90