Circleci로 depro를 한 후 GiitHub Actions로 라벨을 만들고 노트를 발행하는 방법

이것은 무엇이냐
원래는 CircleaCI에서 디자인한 뒤 라벨을 수동으로 제작해 GiitHub에 push한 것인데 라벨 제작 부분은 GiitHub Actions로 자동화된 것이기 때문에 이 기사에서 요약하고자 합니다.(공책을 발표하는 김에...)
사전 준비
  • GiitHub에 대한 개인 액세스 토큰 만들기repo権限는 필수입니다. 권한을 선택할 때 확인하십시오)
  • 획득한 영패CircleaCI 측면으로 설정(이 글에서 GITHUB_TOKEN의 명칭 설정을 전제로 진행)
  • gitg 정보
    gitgg에 관해서는 메인 라인이 아니어서 시원해요.gittag을 사용하면 특정한 제출에 라벨을 붙일 수 있기 때문에 버전(v1.0.0 등)을 관리할 때 편리합니다.자세한 사용 방법은 다음을 참조하십시오.
    https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%BF%E3%82%B0
    설정 진행!
    GiitHub Actions에서 수첩 제작 및 배포를 위한 워크플로우 추가
    라벨을 만들 수 있는 동작이 있는지 찾았을 때GitHub Tag 이 동작을 발견했다.GiitHub Tag을 사용하면 태그를 쉽게 만들 수 있기 때문에 이것을 사용합니다.나중에 다시 말씀드리지만 라벨 외에 발매 노트도 자동으로 제작됩니다.(너무 고마워요...)
    https://github.com/marketplace/actions/github-tag
    설정 방법
    기본적으로 모두 샘플이지만 설정은 다음과 같다.
    .github/workflows/create_tag.yml
    jobs:
      create_tag:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout
            uses: actions/checkout@v2
          - name: Bump version and push tag
            id: tag_version
            uses: mathieudutour/github-tag-action@v5
            with:
              github_token: ${{ secrets.GITHUB_TOKEN }}
              default_bump: "minor"
          - name: Publish release
            uses: actions/create-release@v1
            env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
            with:
              tag_name: ${{ steps.tag_version.outputs.new_tag }}
              release_name: Release ${{ steps.tag_version.outputs.new_tag }}
              body: ${{ steps.tag_version.outputs.changelog }}
    
    CircleaCI에서 디버깅을 완료하면 GiitHub Actions가 워크플로우를 수행할 수 있습니다.
    CircleaCI와 GiitHub Action의 제휴 부분입니다.
    GiitHub Action 측
    우선 GiitHub Action 측에서 설정한다.
    repository_dispatch
    GiitHub Actions에서 외부 이벤트를 트리거하여 워크플로우를 실행하려면 repository_dispatch를 사용합니다.GiitHub 창고의 단점에 대해 POST를 통해 작업 절차를 수행할 수 있습니다.또한 워크플로우 측면, POST 측면event_type을 지정하여 특정 워크플로우만 수행할 수 있습니다.
    repository_작업 프로세스에 디스패치 설정 추가
    방금 제작한 작업 흐름 과정은 다음과 같이 수정되었다.
    따라서 요청create_tagevent_type이 포함된 경우에만 워크플로우를 수행할 수 있습니다.
    .github/workflows/create_tag.yml
    # 追加
    name: Create Tag
    on:
      repository_dispatch:
        types: [create_tag]
    
    jobs:
      create_tag:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout
            uses: actions/checkout@v2
          - name: Bump version and push tag
            id: tag_version
            uses: mathieudutour/github-tag-action@v5
            with:
              github_token: ${{ secrets.GITHUB_TOKEN }}
              default_bump: "minor"
          - name: Publish release
            uses: actions/create-release@v1
            env:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
            with:
              tag_name: ${{ steps.tag_version.outputs.new_tag }}
              release_name: Release ${{ steps.tag_version.outputs.new_tag }}
              body: ${{ steps.tag_version.outputs.changelog }}
    
    CircleaCI 측
    다음은 CircleaCI 측의 설정입니다.
    GiitHub 창고의 단점에 대해 POST를 진행할 수 있습니다
    POST에서 주의해야 할 점은 다음과 같은 세 가지입니다.
    1. 미리 준비한 $GITHUBTOKEN
    2. 대상 저장소의 URL
    3. event_type
    .circleci/config.yml
    나는 아래와 같이 프로그램 주위의 설정에 보충했다.
    .circleci/config.yml
    # 既存のデプロイ周りの設定
    ...
    - run:
        name: Create Tag
        command: |
          curl -X POST -H  "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.everest-preview+json" --data '{"event_type": "create_tag"}' <リポジトリのURL>/dispatches
    
    이 설정으로 끝냅니다.
    사용법
    다음은 사용법을 설명한다.
    자세한 내용은 GiitHubTag 문서 보시고 대충 설명해 주시고 제출 정보에 특정한 접두사를 붙이면 버전이 좋은 느낌을 줄 수 있습니다.
    다음은 대응하는 접두사의 일부분이다.
    보내는 편지에 다음 접두사를 설정하면 탭의 버전이 더 좋은 느낌을 줍니다.(X의 부분 증가)
  • BREAKING CHANGE: 〇〇 → X.0.0
  • feat: 〇〇 → 1.X.0
  • fix: 〇〇 → 1.0.X
  • 또한 상술한 접두사를 더하면 다음과 같은 간단한 발표 노트를 제작할 수 있다.(이하 테스트용으로 제작)

    총결산
    이번에는 GiitHub Action의 워크플로우로 레이블과 릴리즈 노트를 제작했습니다.지금은 제출을 기반으로 발표 노트를 제작하는 형식이지만 제출 단위가 너무 가늘어 가능하면 리블릭 단위로 발표 노트를 정리하고 싶다.채용 단위로 정리할 수 있다면 따로 기사를 쓰고 싶습니다.만약 좋은 방법을 아는 사람이 있다면, 평어를 얻을 수 있다면 기쁘다!
    참고 자료
  • https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E3%82%BF%E3%82%B0
  • https://docs.github.com/en/actions/reference/events-that-trigger-workflows
  • https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
  • https://circleci.com/docs/ja/2.0/env-vars/#setting-an-environment-variable-in-a-project
  • 좋은 웹페이지 즐겨찾기