CI, CD를 시작하기전에 용어에 익숙하지 않으면 아래 링크를 확인해보면 좋습니다.
https://aws.amazon.com/ko/devops/what-is-devops/
이제 소개할 내용은 Github Actions입니다.
https://github.com/features/actions
깃헙 액션은 GITHUB 을 기반으로 소프트웨어의 워크플로를 자동화할 수 있습니다. 즉 CI,CD를 깃헙에서 제공합니다.
CI, CD 툴은 젠킨스나 서클 CI 이 유명합니다. 하지만 깃헙 자체에서 CI,CD를 제공해줘서 간단한 설정만으로 배포를 할 수 있습니다.
이번 예제에서 배포할 내용은 스프링부트입니다. 먼저 스프링부트 프로젝트를 만듭니다.
연습이기때문에 의존성은 'org.springframework.boot:spring-boot-starter-web'
정도만 넣어주었습니다. 저는 gradle을 선호하여 gradle로 프로젝트를 생성했습니다.
자바 버젼은 11으로 설정했습니다.
배포 확인을 할 간단한 컨트롤러를 하나 만듭니다.
@RestController
public class HelloController {
@GetMapping("/")
public String hello() {
return "hello world";
}
}
저는 깃헙 액션을 사용할 것이기 때문에 깃헙 레포지터를 만들었습니다.
간단한 깃헙 세팅을 마치고 해당 프로젝트를 테스트할겸 main 브랜치로 푸쉬를 했습니다.
특별한 이상없이 준비를 마쳤다면 이제 깃헙 액션 사용을 위한 워크플로를 설정하겠습니다.
푸쉬한 프로젝트 리파지터리를 들어가면 Actions이라는 버튼을 확인할 수 있습니다.
이미 깃헙에서 workflow 샘플을 제공하고 있습니다. Java with Gradle 부분에서 Set up this workflow를 클릭합니다.
그러면 샘플 workflow가 나옵니다. 이제 이것을 이용해서 프로젝트에 배포 설정을 하면됩니다.
워크 플로우 설정은 프로젝트 루트에 .github 폴더와 workflows 폴더를 만듭니다.
그다음 설정할 workflow를 붙여놓으면 된다. 이제 main 브랜치로 푸쉬를 테스트로 해봅니다.
푸쉬를 하면 그 순간 Actions 탭에 가보면 자동으로 프로젝트의 테스트와 빌드를 진행합니다.
젠킨스처럼 CI툴 설치같은 작업은 전혀 하지 않았습니다.
정말 간단합니다!!
name: Java CI with Gradle
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
워크플로우 소스를 조금 살펴보면, main 브랜치에 push 혹은 PR이 발생할때 CI 작업이 발생합니다.
자바 11이 설치된 우분투 환경에서 빌드를 진행하게됩니다.
간단하게 스프링프로젝트 빌드 설정을 마쳤습니다!
'CI&CD' 카테고리의 다른 글
ECR에 스프링부트 이미지 올리기(github action) (0) | 2023.05.07 |
---|---|
Github actions를 이용한 CICD - 2 (7) | 2021.08.10 |
Docker 컨테이너 만들어보기 (0) | 2020.11.24 |