Upgrade to Pro — share decks privately, control downloads, hide ads and more …

みんなもっとCI回して!いいところとか教えるから! / just_do_ci

42a6a049ac8f5265f31858a9509217fb?s=47 uhooi
August 20, 2020

みんなもっとCI回して!いいところとか教えるから! / just_do_ci

【オンライン開催】YUMEMI.swift #9 ~テストと自動化~
https://yumemi.connpass.com/event/183635/

## 参考リンク

- makeの解説
https://qiita.com/uhooi/items/7b14b5ce413989c751c3

- GitHub Actionsの解説
https://qiita.com/uhooi/items/29664ecf0254eb637951

- 私が実際に使っているMakefile
https://github.com/uhooi/UhooiPicBook/blob/develop/Makefile

- 私が実際に使っているGitHub Actionsの設定ファイル
https://github.com/uhooi/UhooiPicBook/blob/develop/.github/workflows/main.yml

- 私が実際に使っているGitHub ActionsのCI結果画面
https://github.com/uhooi/UhooiPicBook/actions?query=workflow%3ACI

42a6a049ac8f5265f31858a9509217fb?s=128

uhooi

August 20, 2020
Tweet

Transcript

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

  2. iOS app developer

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

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

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

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

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

    https://ja.wikipedia.org/wiki/継続的インテグレーション ?
  9. 「CI」とは?(ウホーイ流) 内の ソースコードに問題がないか、 確認すること リモートリポジトリ こまめに

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

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

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

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

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

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

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

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

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

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

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

  22. CI に必要なもの

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

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

  25. タスクランナー $ 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
  26. タスクランナー $ 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 →
  27. CI サービス

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

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

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

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