Bitrise/fastlane에서 pod update 자동화는 좋다

TL;DR


  • 포드에서 관리하는 라이브러리 그룹을 업데이트하는 lane을 작성합니다.
  • Bitrise에서 Workflow 지정
  • Workflow를 스케줄링하자

  • 이전



    iOS를 개발하고 있는 여러분, Pod, 사용하죠?
    포드뿐만 아니라 Rails에서 개발할 때도 Gem에서 라이브러리를 관리한다고 생각하지만, 라이브러리는 정기적으로 업데이트하지 않으면 어느새 오래되었습니다.
    사소한 버전과 패치 버전이 몇 가지 업데이트되어 있다면 여전히 괜찮습니다.

    이것에는 몇 가지 원인이있을 수 있지만, 나는 깨닫지 못하는 경우가 많다고 생각합니다.
    즉, 업데이트가있을 때 감지 할 수있는 메커니즘이 있다는 것이 중요합니다.

    이 기사에서는 Bitrise와 fastlane을 사용하여 Pod로 관리되는 라이브러리의 업데이트가있을 때 감지 할 수있는 메커니즘을 만들려고합니다.

    Fastfile에 포드를 업데이트하는 lane을 준비하십시오.



    Fastfile
    desc 'Update pods'
    lane :update_pods do
      date = Date.today.to_s # 現在日付を取得
      branch_name = "feature/pod-update-automation-" + date # branch名
    
      sh("pod update") # この時点でファイル差分があれば以降の処理でPRが出る
      sh("git checkout -b #{branch_name}")
    
      git_add
      git_commit(
        path: "./",
        message: "Update Pods"
      )
      push_to_git_remote(
        remote: "origin",
        local_branch: branch_name,
        remote_branch: branch_name,
        tags: false
      )
      create_pull_request(
        repo: "tihimsm/my_app",
        title: "Update Pods", # PRタイトル
        head: branch_name,
        base: "develop", # PRを出す先のブランチ
        body: "A difference exists in Podfile.lock.\n Please check!" # PRのメッセージ部分
      )
    
      slack(message: "A difference exists in Podfile.lock. Please confirm Pull Request.")
    end
    

    이러한 lane을 Fastfile에 씁니다.
    내가하는 일은 간단합니다.
    1. pod update 명령을 두드리기
    2. Podfile.lock 에 차이가 있으면 PR을 작성

    그렇다면 차이가 있으면 메인 브랜치에 직접 푸시 할 수 있습니다.

    덧붙여서이 중에서 사용되고있는 sh, git_add, git_commit, push_to_git_remote, create_pull_request옵션과 같은 자세한 정보는 공식 문서를 아래에 붙여 놓으십시오.
  • sh
  • git_add
  • git_commit
  • push_to_git_remote
  • create_pull_request

  • Bitrise에서 Workflow 설정



    Workflow는 매우 간단합니다.
    저장소를 Clone하고 fastlane에서 update_pods를 시작하기 만하면됩니다.


    Workflow를 스케줄링하자.


    Builds 탭의 화면 오른쪽 상단에 Start/Schedule a Build라는 버튼이 있으므로 거기에서 스케줄링을 설정합니다.

    위와 같은 화면에서 설정할 수 있습니다.
  • 시간
  • 요일
  • 브랜치
  • Workflow

  • 를 설정하면 자동으로 Workflow를 시작할 수 있습니다.
    위의 예라면 毎日AM02:00 에 기동합니다만, 매일이라고 과연 울만한 경우는 주일이라든가 하면 좋다고 생각합니다.

    요약



    어떻습니까?
    이번에는 Pod 업데이트에 대해 썼지만 Gem 업데이트도 마찬가지로 할 수 있으므로 fastlane이나 cocoapods 업데이트도 자동으로 감지 할 수 있으면 매우 편리합니다!

    덧붙여서, 라이브러리를 업데이트하면 문제가!

    좋은 웹페이지 즐겨찾기