ForkはGithub倉庫を1つ持ってPull Requestの1波3折

2053 ワード

もっと読む
 
Fastlaneは、iOSアプリケーションのパブリケーションプロセスの自動化を実現するためのツールキットです.また、「当社のiOSプロジェクトの継続的な統合と継続的なパブリケーションは、このフレームワークに依存しています.プロセス全体が高度に自動化されているため、多くの時間を節約できます.
 
プライベートライブラリpod lib lintコマンドを実行するためにFastlaneのactionを書いたこともありますが、自分がしばらく使っていたので、いい感じだったので、Fastlaneのmasterブランチに投稿して皆さんに共有したいと思い、ForkはFastlaneの倉庫を作りました.
新しいfeatureブランチadd_action_pod_lib_lintがPull Requestの準備をしています.
 
まずFastlaneのPull Requestルールを読み、このブランチのすべてのCommitをRebaseコマンドで1つにまとめる必要があります.
次の手順に従います.
(1)git rebase-i HEAD~2(この2はPickの最近の2つのCommitを表す)
(2)Vimで編集し、sqaush方式を選択し、前のCommitを現在選択されているCommitにマージ
(3)引き続きVimでのマージ後のCommit情報の編集
(4)マージに成功しgit push-ffがリモートブランチのコミット情報を上書きする
 
 
次に、Pull Requestを提出し、提出した後、GithubのCIがかなりよくできていることを発見し、2つのステップに分けて行います.
(1)Hound-Botというサービスを使ってCheckあなたのコード文法規範(たぶん見て、Houndサービスはオープンソースプロジェクトに対して無料で素晴らしい)
(2)Circle CIを用いてユニットテストを1回実行する
 
(1)の実行中に2つのViolationが見つかりました.基本的には、ファイルの最後の行に空の行を与えるなど、フォーマット上のエラーや文法上の厳密ではないところがあります.
ちょっと見ても大したことはないので、そのまま無視しました.
(2)を実行した後、testが通過していないことに気づき、Circle Ciに登ったところ、意外にも与えられた結果は:
Your build ran 1733 tests in RSpec with 0 failures
 
変な感じがしますね.全部合格したのに、間違いがどこにあるのか分かりません.Circle CIがこんなにスマートで、私のユニットテストのCaseがすべてのシーンをカバーしていないことに気づきましたか.(簡単なので、怠け者でCaseを2つしか書いていません)
そこでテストを補完して、前の手順を繰り返したが、結果は依然として合格せず、すっかり憂鬱になった!そこでCircle CIの各テスト手順とConsoleに印刷された情報をよくチェックして、やっと目立たないところに問題を発見した.
fastlane: Command failed with status (1): [bundle exec rubocop...] rake aborted!
 
ハロー、元々Circle CIでもRubocopを使って静態検査が行われていたのですが、もちろん文法フォーマット仕様なども含めて、Hound-Botの警告を無視すべきではないようですね(ふとプログラマーと警告のネタを思い出しました).
 
最後にすべての文法を正規化し、再度Pull Requestを行い、今回やっとOKとなりました.
All checks have passed
2 successful checks
Details ci/circleci — Your tests passed on CircleCI!
 hound — No violations found. Woof!
 
This branch has no conflicts with the base branch
Only those with write access to this repository can merge pull requests.
 
次は行列MergeからMasterブランチまで待ちます