Slide 1

Slide 1 text

みんなもっと CI 回して! いいところとか教えるから! 2020.08.20 (木) 【オンライン開催】YUMEMI.swift #9 ~テストと自動化~ @the_uhooi

Slide 2

Slide 2 text

iOS app developer

Slide 3

Slide 3 text

・オリジナルモンスターの閲覧アプリ ・累計 100 万 DL(予定) ・主要画面数:2

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

自動化(CI) 今日は について 説明するよ

Slide 6

Slide 6 text

CI が何か知っている人〜?️

Slide 7

Slide 7 text

「CI」とは? ❝ 継続的インテグレーション、 CI(英: continuous integration)とは、 すべての開発者の作業コピーを1日に数回、 共有されたメインラインにマージすることである。 ❞ 引用: https://ja.wikipedia.org/wiki/継続的インテグレーション

Slide 8

Slide 8 text

「CI」とは? ❝ 継続的インテグレーション、 CI(英: continuous integration)とは、 すべての開発者の作業コピーを1日に数回、 共有されたメインラインにマージすることである。 ❞ 引用: https://ja.wikipedia.org/wiki/継続的インテグレーション ?

Slide 9

Slide 9 text

「CI」とは?(ウホーイ流) 内の ソースコードに問題がないか、 確認すること リモートリポジトリ こまめに

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

CI のメリット① リモートリポジトリに問題がないことが保証される

Slide 12

Slide 12 text

CI のメリット② 自動で実行され、手間がかからない

Slide 13

Slide 13 text

CI のメリット③ 誰かのローカル環境に依存しない

Slide 14

Slide 14 text

CI のメリット④ 結果をかんたんに確認できる

Slide 15

Slide 15 text

CI のデメリット CI 環境の構築に学習コストがかかる

Slide 16

Slide 16 text

CI のデメリット CI 環境の構築に学習コストがかかる ビルドやテストのコマンド実行

Slide 17

Slide 17 text

CI のデメリット CI 環境の構築に学習コストがかかる ワークフローの作成 ビルドやテストのコマンド実行

Slide 18

Slide 18 text

CI のデメリット CI 環境の構築に学習コストがかかる CI サービスの選定 ワークフローの作成 ビルドやテストのコマンド実行

Slide 19

Slide 19 text

CI のデメリット CI 環境の構築に学習コストがかかる CI サービスの選定 そもそも何をどうすればいいのか ワークフローの作成 ビルドやテストのコマンド実行

Slide 20

Slide 20 text

CI はアプリの規模や種類にかかわらず
 だいたいおんなじ

Slide 21

Slide 21 text

パクって
 CI はアプリの規模や種類にかかわらず
 だいたいおんなじ ↓ ウホーイのを 使い回せ!

Slide 22

Slide 22 text

CI に必要なもの

Slide 23

Slide 23 text

CI に必要なもの タスク
 ランナー

Slide 24

Slide 24 text

CI に必要なもの タスク
 ランナー CI
 サービス

Slide 25

Slide 25 text

タスクランナー $ 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

Slide 26

Slide 26 text

タスクランナー $ 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 →

Slide 27

Slide 27 text

CI サービス

Slide 28

Slide 28 text

タスクランナーや CIサービスは 何を使えばいいの?

Slide 29

Slide 29 text

ウホーイが使っているツール GitHub Actions make ・タスクランナー: ・CI サービス: (Azure Pipelines)

Slide 30

Slide 30 text

この続きを観るには: iOSDC 2020(40分)

Slide 31

Slide 31 text

まとめ Qiita ・CI はいいぞ ・iOSDC 2020 聴いてね ・↑聴けなくても に記事あるから見てね