CI CD 진행하기 - CodeSoom/DDD-Kurly-Clone-Order GitHub Wiki

코드 통합

  1. CodeSoom/DDD-Kurly-Clone-Order Repository의 main 브랜치에 pull_request를 생성하면 Repository의 Actions 탭에서 커밋 메시지를 이름으로 하는 workflow가 실행되고 있는 것을 확인할 수 있다.

    Untitled

  2. 해당 workflow에서는 ci.yaml에 설정했던 build job이 실행되는 것을 UI로 확인할 수 있다.

    Untitled

애플리케이션 배포

  1. 애플리케이션 배포는 Github의 Releases 기능을 활용한다.

    스크린샷 2021-10-21 오전 11.12.56.png

  2. 위 화면에서 Releases를 클릭하면 새로운 Release를 생성할 수 있는 버튼을 클릭해 이를 생성할 수 있다.

    Untitled

  3. 그 버튼을 클릭하면 다음과 같은 화면을 볼 수 있다. 여기서 Release title을 입력하고 release할 tag를 선택해주면 release를 위한 준비는 끝난다. 그리고 상세 설명을 Description에 적어주면 된다.

    • 이 때, 주의할 점은 최신 커밋버전을 릴리즈하고 싶다면 새로운 태그를 생성하면 된다. 다른 태그를 선택해서 릴리즈한다면 프로젝트 코드가 그 태그 버전의 코드로 돌아가게 된다.
    • 그리고 This is a pre-release 를 선택하게 되면 Release가 published는 되지만 아직 released된 상태는 아니기에 CD workflow는 동작하지 않는다.

    Untitled

  4. Publish release 버튼을 클릭하고 다시 Actions 탭으로 가보면 Kurly Clone Order CD workflow가 동작하고 있는 것을 확인할 수 있으며 각 workflow는 Release title의 이름을 따른다.

    Untitled

  5. 진행중인 workflow를 클릭해보면 upload job이후에 deploy job이 실행되는 것을 확인할 수 있다.

    Untitled

로컬 개발환경을 위한 Docker Compose

로컬 개발환경을 편하게 설정할 수 있도록 Docker Compose 또한 사용해보았다. Deploy만을 위한 Repository가 따로 없는 관계로 CI/CD 과정에서는 아직 사용하고 있지 않지만 컨테이너를 여러개 사용한다면 각 컨테이너를 더 편리하게 다룰 수 있기에 추가해보았다.

사용법은 간단하다. 그냥 프로젝트의 최상단 디렉토리(docker-compose.yaml 파일이 위치한 곳)에서 다음 명령어를 입력하면 backend 컨테이너가 실행된다. 그 후에 [localhost:8080](http://localhost:8080) 으로 애플리케이션에 접근할 수도 있다.

$ docker-compose up

# 만약 데몬(백그라운드 프로세스)로 컨테이너를 실행하고 싶다면
$ docker-compose up -d

컨테이너를 종료하려면 다음 명령어를 입력하면 된다.

$ docker-compose down