iOSDC Japan 2020 Day1 14:40〜 Track B https://fortee.jp/iosdc-japan-2020/proposal/aff7d899-f92e-4342-ae24-fde1ae4cf799
## 参考リンク
- サンプルリポジトリ https://github.com/uhooi/iOSDC2020-Talk-Sample
GitHub Actions でiOS アプリを CI する個人的ベストプラクティス2020.09.20 (Sun) 14:40 - 15:20iOSDC Japan 2020 day 1 Track B@the_uhooi
View Slide
お手元にパソコンをご用意すると、より楽しめます。HANDS ONhttps://github.com/uhooi/iOSDC2020-Talk-Sample
PAMPHLETiOSDCのパンフレットに原稿を掲載していただいています。
iOS app developer@uhooi@uhooi@the_uhooi
オリジナルモンスター図鑑累計 100 万 DL (予定) / 主要画面数: 2
AGENDAGitHub ActionsCI010203Make
011CICI
CI が何か知っている人〜?️
「CI」とは?❝ 継続的インテグレーション、CI(英: continuous integration)とは、すべての開発者の作業コピーを1日に数回、共有されたメインラインにマージすることである。 ❞引用: https://ja.wikipedia.org/wiki/継続的インテグレーション
「CI」とは?❝ 継続的インテグレーション、CI(英: continuous integration)とは、すべての開発者の作業コピーを1日に数回、共有されたメインラインにマージすることである。 ❞引用: https://ja.wikipedia.org/wiki/継続的インテグレーション?
「CI」とは?(ウホーイ流)内のソースコードに問題がないか、確認することリモートリポジトリこまめに
CI のメリット①リモートリポジトリに問題がないことが保証される
CI のメリット②自動で実行され、手間がかからない
CI のメリット③誰かのローカル環境に依存しない
CI のメリット④結果をかんたんに確認できる
CI のデメリットCI 環境の構築に学習コストがかかる
CI のデメリットCI 環境の構築に学習コストがかかるビルドやテストのコマンド実行
CI のデメリットCI 環境の構築に学習コストがかかるワークフローの作成ビルドやテストのコマンド実行
CI のデメリットCI 環境の構築に学習コストがかかるCI サービスの選定ワークフローの作成ビルドやテストのコマンド実行
CI はアプリの規模や種類にかかわらず だいたいおんなじ
パクって CI はアプリの規模や種類にかかわらず だいたいおんなじ↓ウホーイのを使い回せ!
CI に必要なもの
CI に必要なものタスク ランナー
CI に必要なものタスク ランナーCI サービス
タスクランナー$ set -o pipefail && \xcodebuild \-sdk ${TEST_SDK} \-configuration ${TEST_CONFIGURATION} \-workspace ${WORKSPACE_NAME} \-scheme ${SCHEME_NAME} \-destination ${TEST_DESTINATION} \-skip-testing:${UI_TESTS_TARGET_NAME} \clean test \| bundle exec xcpretty --report html
タスクランナー$ set -o pipefail && \xcodebuild \-sdk ${TEST_SDK} \-configuration ${TEST_CONFIGURATION} \-workspace ${WORKSPACE_NAME} \-scheme ${SCHEME_NAME} \-destination ${TEST_DESTINATION} \-skip-testing:${UI_TESTS_TARGET_NAME} \clean test \| bundle exec xcpretty --report html$ make test→
CI サービス
ウホーイが使っているツールGitHub ActionsMake・タスクランナー:・CI サービス:
022MakeMake
「Make」とは?
「Make」とは?・主に C 言語のコンパイルやリンクに使われるコマンド
「Make」とは?・主に C 言語のコンパイルやリンクに使われるコマンド・複数の処理をまとめて make ○○ として実行できる
「Make」とは?・主に C 言語のコンパイルやリンクに使われるコマンド・複数の処理をまとめて make ○○ として実行できる・初版は 1977 年(Wikipedia より)
Make のメリット①Makefile のみで済むMakefile
Make のメリット②広く知られている
Make のデメリット実は仕様が複雑
↓単純なタスクランナーの使用に限定するMake のデメリット実は仕様が複雑
タスクの定義方法.PHONY: foofoo:>...処理1>...処理2...
タスクの定義方法.PHONY: foofoo:>...処理1>...処理2...$ make foo→
033GitHub ActionsGitHub Actions
「GitHub Actions」とは?
「GitHub Actions」とは?・GitHub が提供しているプロセス自動化サービス
「GitHub Actions」とは?・GitHub が提供しているプロセス自動化サービス・2019/11/14 に一般公開された
GitHub Actions の料金(GitHub Free + Private)・無料: 2,000 分 / 月・超過: $ 0.008 / 分OS 倍率Windows 2Linux 1macOS 10
GitHub Actions のメリット①GitHub で完結する
GitHub Actions のメリット②GitHub とかんたんに連携できる
GitHub Actions のメリット②GitHub とかんたんに連携できる・GitHub トークンがデフォルトで変数になっている
GitHub Actions のメリット②GitHub とかんたんに連携できる・GitHub トークンがデフォルトで変数になっている・Issue の投稿をきっかけにワークフローを実行する
GitHub Actions のメリット③すぐに始められる
GitHub Actions のデメリットGitHub を使っていないと使えない
ハンズオン
まとめ
まとめ・CI はいいぞ
まとめ・CI はいいぞ・タスクランナーを使うと CI の設定がスッキリする
まとめ・CI はいいぞ・タスクランナーを使うと CI の設定がスッキリする・CI サービスは便利