- Published on
CircleCI M1 Mac パフォーマンス比較
- Authors
- Name
- Tadashi Nemoto
- @tadashi0713
この記事では、CircleCI でリリースされた M1 Mac リソースクラスのパフォーマンス比較を紹介します。
CI/CD パイプラインが M1 に対応し Apple Silicon でのビルドが可能に | CircleCI
対象アプリケーション
GitHub - tadashi0713/circleci-duckduckgo-ios: CircleCI Demo of DuckDuckGo iOS Application
このレポジトリは以下の DuckDuckGo iOS アプリ(ブラウザーアプリ)を Fork して作成しました。
GitHub - duckduckgo/iOS: DuckDuckGo iOS Application
unit_test
(ユニットテストの実行)integration_test
(インテグレーションテスト/UI テストの実行)build
(署名なしビルドの実行)
設定ファイル(.circleci/config.yml
)は下記です
version: 2.1
orbs:
ruby: circleci/ruby@2.0.0
macos: circleci/macos@2.3.4
executors:
gen2_medium:
macos:
xcode: 14.2.0
resource_class: macos.x86.medium.gen2
m1_large:
macos:
xcode: 14.2.0
resource_class: macos.m1.large.gen1
jobs:
unit_test:
parameters:
executor:
type: executor
executor: << parameters.executor >>
steps:
- macos/preboot-simulator:
device: iPhone 14
version: '16.2'
- checkout
- run: git submodule update --init --recursive
- ruby/install-deps
- run: bundle exec fastlane unit_tests
- store_test_results:
path: fastlane/report.xml
integration_test:
parameters:
executor:
type: executor
executor: << parameters.executor >>
steps:
- macos/preboot-simulator:
device: iPhone 14
version: '16.2'
- checkout
- run: git submodule update --init --recursive
- ruby/install-deps
- run: bundle exec fastlane integration_tests
- run: bundle exec fastlane atb_uitests
- store_test_results:
path: fastlane/report.xml
build:
parameters:
executor:
type: executor
executor: << parameters.executor >>
steps:
- checkout
- run: git submodule update --init --recursive
- ruby/install-deps
- run: bundle exec fastlane build
workflows:
m1_large_workflow:
jobs:
- unit_test:
executor: m1_large
- integration_test:
executor: m1_large
- build:
executor: m1_large
gen2_medium_workflow:
jobs:
- unit_test:
executor: gen2_medium
- integration_test:
executor: gen2_medium
- build:
executor: gen2_medium
Medium Gen 2
- Intel プロセッサー
- 4 CPU @ 3.2 GHZ
- 8 GB RAM
ワークフロー実行時間
CPU/RAM 使用率
M1 Large
- Apple silicon
- 8CPU
- 12GB RAM