詳解Fastfileを聞いて
前提
このトークの感想とメモです。 https://speakerdeck.com/giginet/xiang-jie-fastfile
@giginet さんのトークです
kameikeの状況
- rubyちょっとかける(オライリー本を読んだのが二年前ぐらいなので実質記憶喪失)
- fastlaneちょっと使っている
- itunesConnectにアップロードする際に使っている
- CIとしてjenkinsが昔やっていたけど、今はbitriseでやっているのでそこはあまり使っていない
cookpadだとどうしているのかのメモ
- github上のCI, CDの基盤として
- リリースフローの管理
- サブミットを自動化
- slackbotと対話的にビルドをお願いできるようになっている
- 社内向けビルドの配布。
- ラベルつけておくと、PRごとにビルドして配信。
- メトリクス監視としてカバレッジの集計、統計に使っている
- その他色々聞き逃したけどいろいろやっている
すごい
とても参考になったtipsメモ
private_lane
内部からしか呼べない記法。private_laneはProcになってる。 → nextじゃないと戻り値を出せないとかによくつまづくので、ドキュメントにも書いている。
import
巨大なFastfileを分割する。 ファイル名をimportできる
githubでsyntax fileをなんとかする # vim: syntax=ruby
とすると色がつく。← これめっちゃ便利tips
githubのsyntaxのライブラリーがvimのコマンドを解釈してくれて色がつく、ということらしい!良い知見。
公式ドキュメントのAdvancedがオススメ。
色々と丁寧にまとまっているそうです
keyとかのをfastfileに書かない
環境変数から注入する。管理する際もセキュアだし、コンテナとかとも相性が良さそう。
設定とロジックは分離する
Appfile, Gymfile....
のようなものがある。そこに分離。
ロジックをfastfileから外して、Actionに分離
bundle exec fastlane new_action
から対話的に生成できる。
- バリデーションがしやすく
ConfigItem
というものを使うと、設定を宣言的に読み込める。 - アクション自体のrspecをかける ←これがあると超便利そう
codesignが大変
これは僕もつらい思い出が、幸いしっかり開発を始めたのがXcode9からなので恵まれを感じる。表に起こすと便利そうでよさそう。
fastlaneでがんばるよりも、XCodeで頑張るとよさそうという感じだった。
Fastfileのデバック
pry
を入れるとデバックしやすい。
感想
- ドキュメントをもう一度通して読もうという気持ちが高まった。
- 状況に応じた自動化、大切だなぁ
# vim: syntax=xxx
色々と便利そう。名前が違うDockerfileとかにも使えそう。- できる限り宣言的にしていこうという努力、かっこいい