티스토리 뷰

이번 동아리 프로젝트에서 배포와 ci/cd 연동을 내가 하기로 하였는데 고민끝에 배포환경은 aws 프리티어와 ci/cd 구축은 github action을 사용하기로 하였다.

이번 프로젝트를 배포하며 배포 과정 그리고 ci/cd의 개념에 대하여 알게되는 좋은 계기가 되었다. 물론 ec2 인스턴스를 한 네번정도 만들어보면서 깨달음 ㅎㅎ

 

그럼 처음으로 github action 연동에 대하여 정리하여보자


CI/CD 란?

CI - Continuous Intergration (지속적인 통합)

CD - Continuous Deliver, Continuous Deployment (지속적인 배포)

를 뜻하며 개발자들이 코드를 수정하고 통합하고 그리고 수정본을 배포하는 과정을 자동화하여 불필요한 공수를 줄이고 보다 빠른 서비스를 제공할 수 있는 효과를 가질 수 있다.

 

ci/cd 구축을 지원하는 툴에는

  • JenKins

  • Travis CI

  • Circle CI

  • Google Cloud Build

  • AWS CodeBuild 

  • Github Action

등 다양하게 존재한다

 

이 중에서 나는 Github Action을 사용하여 구축을 할 예정이다.

 

Github Action 이란?

github actiondms 18년에 공개되어 베타 테스트를 거쳐 19년 부터 서비스를 하고있는 최신 기술이다

github action은 ci/cd만을 위한 도구는 아니고, 다양한 workflow를 작성할 수 있다. 또한 이는 github 자체에서 제공하는 기능이기 때문에

다른 툴을 사용하는 것보다 관리해야할 포인트가 줄어드는 장점이 있다


그럼 프로젝트에 ci/cd를 위한 github action을 연동해보자 

사용법은 간단하다 프로젝트의 루트디렉토리에 .github/workflows 디렉토리에 yml 파일을 생성한다

# This is a basic workflow to help you get started with Actions

name: Spring Boot CI/CD

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
  push:
    branches:
      - master

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  build:
    # 실행 환경 지정 - latest 보다는 지정된 버전을 사용하는 것 추천
    runs-on: ubuntu-18.04

    # Task의 sequence를 명시한다.
    steps:
      - uses: actions/checkout@v2

      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Grant execute permission for gradlew
        run: chmod +x gradlew

      - name: Build with Gradle
        run: ./gradlew :aws-application:clean :aws-application:build

-위 코드를 간단히 설명하자면 master branch에 push가 들어왔을 때 우분투에서 자바 실행 환경을 설치 후 빌드를 해주는 플로우이다

-우분투는 latest 보다는 정확한 버전을 명시하여주는 것이 나중에 엉키지 않다고 팀원님이 조언해주셔서 버전을 명시해줬다

 

그 후 commit push를 하면

잘 작동되는 것을 확인 할 수 있다 

다음편에서는 s3로 배포 파일 이관하는 법에 대하여 포스팅을 해야겠다

**) 잘못된 정보가 있을 수 있습니다. 언제든지 조언해주세요!!

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함