Bitrise로 태그 치기 ~ 릴리스 노트 작성까지 자동화

4116 단어 iOSBitrise

이번 목표


  • 릴리스 브랜치에 병합되면 훅에 Bitrise 릴리스 빌드 워크 플로를 시작
  • 자동으로 태그를 찍고 릴리스 페이지를 GitHub에 생성
  • 릴리즈 노트에는 해당 릴리즈에서 구현한 커밋 로그가 나열되어 있으며, 어떤 릴리즈에서 어떻게 대응했는지 나중에 파악할 수 있습니다

  • Bitrise의 공식 블로그 "Create release notes and versioning with the release workflow"에서 태그 타기를 트리거에 릴리스 노트를 자동 생성하는 기사가 있지만,
    태그타기까지 자동화하면 몇 가지 커스터마이즈가 필요했기 때문에 기사로 했다.

    완성형



    최종적으로 이런 느낌으로 iTunes Connect 배포 후 자동으로 릴리스 노트가 생성된다
    태그에 연결된 커밋 로그와 그 링크를 목록에서 확인할 수 있습니다.



    절차



    Step의 순서는 이런 느낌.
    ※실제는 Deploy to iTunes Connect 전에 빌드 번호를 인크리먼트하거나 여러 Step이 있다



    사전 준비로 PUSH 트리거 설정 필요
    적절히 GitHub의 Personal Access Token 등 설정하여 webhook을 활성화



    1. 태그명을 환경 변수로서 설정해 둔다



    후공정의 릴리스 노트 작성의 스텝Github Release으로 태그명이 필요하게 됩니다만, 그 스텝에 디폴트 지정되고 있다 $BITRISE_GIT_TAG 는 태그타기를 트리거로 하지 않으면 값이 포함되지 않는다.
    이번에는 태그타기가 트리거가 아니고, Push 트리거를 위해 자전으로 정의한다

    자체 환경 변수를 설정하는 방법



    Bitrise의 환경 변수 관리는 Bitrise 사의 envman을 사용합니다.script 단계에서 envman 명령을 사용하면 자체 환경 변수를 설정할 수 있습니다.

    참고: Exposing env vars and using them in another step

    고유 환경 변수 GIT_TAG 설정
    envman add --key GIT_TAG --value "${XPI_VERSION}(${BITRISE_BUILD_NUMBER})"
    

    XPI_VERSIONXcode Project Info 단계에서 생성됩니다.

    2. 태그 치기



    Step: Git tag 추가Tag to set on current commit에 1.에 지정된 환경 변수 설정

    3.CHANGE LOG 만들기



    Step: Generate Changelog 추가

    이 단계에서 생성 된 변경 로그는 다음 릴리스 노트 작성 단계에서 사용할 수 있습니다 $BITRISE_CHANGELOG.

    4. 출시 노트 만들기



    Step: Github Release 추가
    1.의 순서로 설정한 GIT_TAG를 Tag, Release name으로 설정

    yaml은 이런 느낌
        - github-release:
            inputs:
            - username: "$GITHUB_USERNAME"
            - name: "$GIT_TAG"
            - body: "$BITRISE_CHANGELOG"
            - tag: "$GIT_TAG"
            - api_token: "$GITHUB_PERSONAL_ACCESS_TOKEN"
    

    메모



    단계에서 생성된 환경 변수는 각 단계 세부사항의 맨 아래에 있는 This step will generate these output variables: 항목에서 확인할 수 있습니다.

    좋은 웹페이지 즐겨찾기