GitHub에서 릴리스 자동화

그렇다면 릴리스란 무엇입니까?



소프트웨어 패키징/번들링 및 더 많은 사용자가 다운로드 및 사용할 수 있도록 합니다.

왜 사용합니까?


  • 소프트웨어 배포(이진 배포).
  • 변경 유형 및 양을 추적합니다.
  • 시맨틱 버전 관리 관행을 따르기 위해.
  • 과거로 돌아가서 이전 버전을 사용합니다.
  • 전문적으로 보입니다.

  • 릴리스를 자동화하는 이유는 무엇입니까?



    릴리스를 수동으로 생성하는 것은 동시에 약간 까다롭고 어려울 수 있습니다. 몇 줄의 YAML과 함께 GitHub 워크플로를 사용하면 해당 작업을 자동화하고 개발에 더 집중할 수 있습니다. 이와 함께 변경 로그 파일( CHANGELOG.md ) 및 태그도 생성합니다.



    사진 - EddieHubCommunity/LinkFree repo.

    워크플로 사용.



    저장소의 루트 내에 .github 폴더를 만듭니다. workflows 폴더 안에 폴더 이름.github을 만듭니다. 그런 다음 releases.yml 폴더 안에 아래 제공된 YAML 구성을 추가하여 workflows 파일을 만듭니다.
  • 전체 경로는 .github/workflows/releases.yml입니다.

  • YAML 구성:

    name: Releases
    on:
      push:
        branches:
          - main
    
    jobs:
      changelog:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          - name: conventional Changelog Action
            id: changelog
            uses: TriPSs/[email protected]
            with:
              github-token: ${{ secrets.github_token }}
    
          - name: create release
            uses: actions/create-release@v1
            if: ${{ steps.changelog.outputs.skipped == 'false' }}
            env:
              GITHUB_TOKEN: ${{ secrets.github_token }}
            with:
              tag_name: ${{ steps.changelog.outputs.tag }}
              release_name: ${{ steps.changelog.outputs.tag }}
              body: ${{ steps.changelog.outputs.clean_changelog }}
    


    구성 이해


  • 일부 이벤트에서 워크플로를 자동으로 트리거하기 위해 on: 속성을 사용합니다. 이 경우 변경 사항이 main 분기로 푸시될 때 작업이 트리거됩니다. 기본 설정에 따라 분기를 수정할 수도 있습니다.

  • on:
      push:
        branches:
          - main
    


  • Ubuntu OS에서 워크플로를 실행합니다. 우리는 또한 변경할 수 있습니다

  • jobs:
      changelog:
        runs-on: ubuntu-latest
    


  • 여기서는 두 개의 작업을 사용하고 있습니다. checkout 작업은 체크아웃하고 리포지토리 내부로 이동하는 데 사용되며 conventional-changelog-action는 기존 커밋을 찾습니다. 또한 변경 로그 파일을 생성합니다.

  • 기본적으로 GitHub는 기본 토큰github_token을 제공합니다. 개인 액세스 토큰을 사용할 수도 있습니다.

        steps:
          - uses: actions/checkout@v2
          - name: conventional Changelog Action
            id: changelog
            uses: TriPSs/[email protected]
            with:
              github-token: ${{ secrets.github_token }}
    


  • 여기서는 create-release 작업을 사용하고 있는데, 사용된 커밋의 규칙에 따라 자동 릴리스가 생성됩니다
  • .

    본문과 릴리스 커밋 이름을 자동으로 설정합니다.

          - name: create release
            uses: actions/create-release@v1
            if: ${{ steps.changelog.outputs.skipped == 'false' }}
            env:
              GITHUB_TOKEN: ${{ secrets.github_token }}
            with:
              tag_name: ${{ steps.changelog.outputs.tag }}
              release_name: ${{ steps.changelog.outputs.tag }}
              body: ${{ steps.changelog.outputs.clean_changelog }}
    


    일하고 있는



    워크플로를 만들려면 자동 릴리스를 만듭니다. 몇 가지 커밋 규칙을 따라야 합니다 - Conventional Commits . 사용된 규칙에 따라 새 릴리스의 버전이 지정됩니다.


  • fix: 마지막 숫자인 패치를 범프합니다.
  • feat - 가운데 숫자가 부딪히게 됨 - 마이너
  • BREAKING CHANGE: - 첫 번째 숫자를 - major
  • 로 범프합니다.

    Conventional Commits에 대한 블로그도 작성했습니다. 확인하실 수 있습니다 - Getting started with Conventional Commits

    이제 모든 설정이 완료되었습니다. 이제 적절한 규칙으로 커밋을 생성하면 모든 마법을 수행할 것입니다.

    그게 블로그의 끝입니다. 읽어주셔서 감사합니다.

    Hashnode에서 Pradumna 팔로우

    좋은 웹페이지 즐겨찾기