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

신고하기

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

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

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

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

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

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

      임시저장함

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

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

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

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

      회원정보 연결

      GitHub Action을 이용하여 Release 자동화 후기

      jungbbong 23.05.09
      9,243 16 0

      1. release 자동화가 필요하게된 이유

      최근에 개발을 하면서 git의 branch 전략 dev, staging, main(master)를 정의하면서 git branch에 대한 정의를 하였다.

      이때 dev, staging, main(master)에서 개발이 완료됨에 따라 CI/CD중 CD에 해당하는 사용자(외부로) 노출되어야하는 서비스, 제품등 release가 필요한 상황이 생겼다.

      release가 주기적으로 일어남에 따라 배포된 내용과 버그픽스, 기능추가등등 문서를 정리해야 할일들이 발견 되었는데 git commit 내용을 취합해서 문서화하는것도 어느정도 귀찮은 상황이 발생하였음.


      2. 이때 협업하는 사람들과의 아이디어 접근

      github action을 통하여 tag/release를 자동화하면서 문서화까지도 자동화 구축하자


      3. 사용하게된 도구

      github의 action marketplace에 있는 tag/release 자동화 tool

      mathieudutour/github-tag-action@v6.1

      ncipollo/release-action@v1


      3.1 github action code

      github action code 요약설명

      github develop branch에 commit후 main으로 pull_request하여 trigger를 동작시켜 deploy하도록 진행

      name: github action tag release 
      
      on:
        push:
          branches:
            - main
      
      jobs:
        setup-build-deploy:
          name: Setup, Build, and Deploy
          runs-on: ubuntu-latest
          permissions:
            packages: write
            contents: write
            id-token: write 
      
          steps:
          - name: Bump version and push tag
            id: tag_version
            uses: mathieudutour/github-tag-action@v6.1 
            with:
              github_token: ${{ secrets.GITHUB_TOKEN }} 
      
          - name: Create a GitHub release
            uses: ncipollo/release-action@v1 
            with:
              tag: ${{ steps.tag_version.outputs.new_tag }}
              name: Release ${{ steps.tag_version.outputs.new_tag }}
              body: ${{ steps.tag_version.outputs.changelog }}


      3.2 commit 로그

      image.png


      설명1)

      github에 commit한 log를 기반으로 release version이 update되면서 commit로그를 바탕으로 배포로그까지 생성이된다


      설명2)

      init, modify는 버전으로 기록이 되지 않는다

      fix:, feat: 두가지의 github log가 기록으로 되어 github tag 버전에 정상적으로 배포로그(하단의 3.4. 참조)가 남게된다


      commit 메시지 종류

      image.png

      3.3 github action 실행 결과

      main으로 push되었을때 trigger가 됨을 알 수 있다

      image.png


      3.4 배포 결과

      위의 3.2 commit로그를 토대로 배포로그가 정상적으로 생성되었으며 semver 형태로 버전이 정상생성됨을 알 수 있다.

      image.png

      4. 회고 및 후기

      실제로 commit 로그를 토대로 배포로그를 생성해줌으로 동시작업한 github시 불필요작업이 줄어들었음을 알 수 있다.

      github action workflow를 여러개 작성했을시 release는 project에서 1개로 관리됨에 따라서 버전이 여러개 올라가는 경우를 볼 수 있다.

      댓글 0

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

      jungbbong 님의 최신 블로그

      더보기
      동영상 기고하기