Bitrise/fastlane에서 pod update 자동화는 좋다
TL;DR
이전
iOS를 개발하고 있는 여러분, Pod, 사용하죠?
포드뿐만 아니라 Rails에서 개발할 때도 Gem에서 라이브러리를 관리한다고 생각하지만, 라이브러리는 정기적으로 업데이트하지 않으면 어느새 오래되었습니다.
사소한 버전과 패치 버전이 몇 가지 업데이트되어 있다면 여전히 괜찮습니다.
이것에는 몇 가지 원인이있을 수 있지만, 나는 깨닫지 못하는 경우가 많다고 생각합니다.
즉, 업데이트가있을 때 감지 할 수있는 메커니즘이 있다는 것이 중요합니다.
이 기사에서는 Bitrise와 fastlane을 사용하여 Pod로 관리되는 라이브러리의 업데이트가있을 때 감지 할 수있는 메커니즘을 만들려고합니다.
Fastfile에 포드를 업데이트하는 lane을 준비하십시오.
Fastfiledesc '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
옵션과 같은 자세한 정보는 공식 문서를 아래에 붙여 놓으십시오.
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
옵션과 같은 자세한 정보는 공식 문서를 아래에 붙여 놓으십시오.Bitrise에서 Workflow 설정
Workflow는 매우 간단합니다.
저장소를 Clone하고 fastlane에서 update_pods
를 시작하기 만하면됩니다.
Workflow를 스케줄링하자.
Builds
탭의 화면 오른쪽 상단에 Start/Schedule a Build
라는 버튼이 있으므로 거기에서 스케줄링을 설정합니다.
위와 같은 화면에서 설정할 수 있습니다.
Builds
탭의 화면 오른쪽 상단에 Start/Schedule a Build
라는 버튼이 있으므로 거기에서 스케줄링을 설정합니다.위와 같은 화면에서 설정할 수 있습니다.
를 설정하면 자동으로 Workflow를 시작할 수 있습니다.
위의 예라면
毎日AM02:00
에 기동합니다만, 매일이라고 과연 울만한 경우는 주일이라든가 하면 좋다고 생각합니다.요약
어떻습니까?
이번에는 Pod 업데이트에 대해 썼지만 Gem 업데이트도 마찬가지로 할 수 있으므로 fastlane이나 cocoapods 업데이트도 자동으로 감지 할 수 있으면 매우 편리합니다!
덧붙여서, 라이브러리를 업데이트하면 문제가!
Reference
이 문제에 관하여(Bitrise/fastlane에서 pod update 자동화는 좋다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tihimsm/items/055aac498c8bc3593300
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Bitrise/fastlane에서 pod update 자동화는 좋다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tihimsm/items/055aac498c8bc3593300텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)