데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      예제와 함께하는 Github Action 심플 가이드

      nabbang 24.02.02
      4,300 12 1
      DEVOTEE 요약
      깃헙 액션은 코드 저장소에서 소프트웨어 개발 워크플로우를 자동화하는 도구로, 빌드, 테스트, 릴리즈, 배포 과정을 한 번에 설정할 수 있습니다. 워크플로우는 깃헙에서 제공하는 리눅스, 맥OS, 윈도우, 컨테이너 머신에서 실행되며, 저장소에서 설정된 액션, 오픈소스 액션, 도커 컨테이너 이미지 등을 이용해 워크플로우를 만들 수 있습니다. 프로젝트 디렉토리에 '.github/workflows' 폴더를 만들어 워크플로우를 저장하고, yaml 형식으로 워크플로우를 정의한 후, 변경 사항을 커밋-푸시하여 적용 여부를 확인할 수 있습니다.
      DEVOTEE 추천 블로그

      Github Action 이란?

      • 깃헙 액션은 "코드 repository이자 PR/issue 발행등으로 협업하는 공간(Github Repository)"에서 소프트웨어 개발 workflow들을 자동화하는 걸 도와준다.

        Action 이라고 불리는 개별적인 task를 작성하고, 이를 조합하여 custom workflow를 만들 수 있다.

        Workflow를 이용하여 레포지토리에서 build, test, release, deploy 까지 한번에 자동화할수 있도록 설정할 수 있다.

      • Github Actions으로 end-to-end CI/CD 를 직접 구현할 수 있다.

        Workflow는 Github에서 호스팅하는 Runner라는 Linux/MacOs/Windows/Container 머신에서 수행된다.

        개별적인 머신(self-hosted machine)에서 workflow를 수행하도록 설정할 수도 있다.

      • Repo에서 설정된 action들, open-source 로 공개된 action 들, docker container image등을 이용하여 workflow를 만들 수 있다.

        Workflow에서 사용하고 싶은 action들을 찾아볼 수도 있고, 공유하고 싶은 action 들을 만들 수도있다.

        다만, custom action들은 적용하고 싶은 레포에 설치 후에, workflow에서 사용할 수 있다.

      • 특정 이벤트에 trigger되도록 설정된 workflow파일들을 만들 수 있다.


      사용법

      1. 프로젝트 디렉토리 밑에 .github/workflows를 만든다 이 폴더 밑에 workflow들이 저장된다.

        예를 들어 현재 우리 프로젝트는 각 branch push 시 trigger 되어 각 환경에 배포될 수 있도록 branch(환경 이름) 별로 workflow를 만들고 있다(develop, staging, main)

      2. yaml 형식으로 workflow를 정의한다.

      3. workflow를 customize 하기 위해 위 문서(Workflow syntax for GitHub Actions)를 참조한다

      4. 변경사항을 commit → push 하고 action 코너에 잘 적용되었는지 확인한다


      예시

      name: Deploy DEV
      
      on:
        push:
          branches:
            - develop
      
      jobs:
        build:
          runs-on: ubuntu-latest
          steps:
            - name: Git clone
                uses: actions/checkout@v2
            - name: Login to Amazon ECR
              id: login-ecr
              uses: aws-actions/amazon-ecr-login@v1
            - name: Get latest Tag
              id: latest-tags
              run: |
                git fetch -a
                echo "LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_ENV
            - name: Build and deploy
              env:
                ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
              run: |
                echo $LATEST_TAG
                REPO_NAME=$(echo $GITHUB_REPOSITORY | awk -F / '{print $2}')
                docker build --build-arg VERSION=$LATEST_TAG -t $ECR_REGISTRY/$REPO_NAME:$GITHUB_SHA -t $ECR_REGISTRY/$REPO_NAME:latest .
                docker push -a $ECR_REGISTRY/$REPO_NAME
                aws ecs update-service --cluster example --service $REPO_NAME --task-definition $REPO_NAME --force-new-deployment
      1. name: workflow의 이름(개발계 배포)

      2. on: trigger 조건, 여기서는 "develop" branch의 commit push 시 trigger

      3. jobs: 수행할 task들

        1. build: 수행할 job이 build임

        2. runs-on: job 을 수행할 runner의 OS

        3. steps: build steps

          1. Git clone: actions/checkout 은 github action 에서 제공하는 몇가지 기본 action 중에 하나인데,

            checkout action은 다른 action 들 전에 반드시 포함해야하는 기본이다. 우리는 첫번째 경우에 해당된다.

            1. Repo의 코드 복사본이 필요할때, 예를 들어 레포 코드 빌드 또는 테스트를 진행할때.

            2. 워크 플로에 동일한 리포지토리에 정의 된 액션이 하나 이상 있을때

          2. Build & Push: 실제 배포가 이루어지는 부분을 정의했다. 예시는 ECR에 새로운 이미지를 배포하여 해당 이미지로 Fargate Task 가 업데이트 되도록 했다.

            이때 필요한 인증정보등은 github secrets 에 지정한 환경변수를 사용할 수 도 있다.

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      nabbang 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기