更新履歴
2023.08.02 GitLab.JP Meetup で本投稿の内容を登壇しました
この記事では、GitLab CI/CD の macOS SaaS Runner と GitLab Mobile DevOps で iOSアプリのビルド実行環境を簡単にセットアップする方法について紹介します。
macOS SaaS Runner とは
macOS SaaS Runner は、GitLabが提供するCI/CDのクラウド実行環境です。SaaS Runner を使用することで、環境構築の手間を省くことができます。
従来の SaaS Runner は Docker 上で提供されており、Xcodeを実行できるDockerイメージが存在しないため、iOSアプリのビルドは独自の実行環境に GitLab Runner をインストールして構築するため、以下のような課題が有りました。
- MacbookProやMac MiniなどのmacOS実行環境が必要
- macOSやXcodeのバージョンを指定する場合は複数macOS実行環境が必要
- macOS実行環境にインストールしたGitLab Runnerのメンテナンス
これら課題を解決するサービスが、GitLabが提供する macOS SaaS Runner です。
macOS SaaS Runner の使い方
build:
tags: [saas-macos-medium-m1]
image: macos-12-xcode-14
stage: build
script:
- echo "running scripts in the build job"
このように、YAMLファイルのtags: [saas-macos-medium-m1]
を指定すれば、Intel x86-64 プロセッサを搭載したクラウド実行環境が手に入ります。
macOSとXcodeのバージョンはimage: macos-12-xcode-14
で指定できます。利用可能バージョンは、公式ドキュメント VMインスタンスの種類とイメージ に記載されています。
GitLab Mobile DevOps
GitLab Mobile DevOps は、モバイル開発者やチームが GitLab CI/CD を使用してビルドおよびリリースプロセスを自動化するために設計された機能です。
コード署名 と セキュアファイル機能
macOS SaaS Runner のクラウド環境で実行する場合、コード署名(Provision profiles や Signing certificates)をクラウド環境に連携する管理が必要があります。
セキュアファイル機能 を使えばGitLabプロジェクト上で直接簡単に管理ができます。
CI/CDパイプラインで使用する「セキュアファイル」として最大 100 個のファイルを安全に保存できます。これらのファイルは、プロジェクトのリポジトリの外に安全に保存され、バージョン管理されていません。これらのファイルに機密情報を保存しても安全です。安全なファイルは、プレーンテキストとバイナリの両方のファイル タイプをサポートしますが、5 MB 以下である必要があります。
Secure Files へのファイル追加
- Main menu > Projects を選択し、プロジェクト詳細に移動します
- 左サイドバーで、Settings > CI/CD を選択します
- Secure Files セクションで、Expand を選択します
- Upload File を選択します
- アップロードするファイルを見つけて Open を選択すると、ファイルのアップロードがすぐに開始されます。アップロードが完了すると、ファイルがリストに表示されます。
GitLab CI/CD での Secure Files ダウンロード
build:
variables:
SECURE_FILES_DOWNLOAD_PATH: './where/files/should/go/'
script:
- curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
script
のcurlコマンドにより、CI/CDジョブで Secure Files がダウンロードされます。
ダウンロード先ディレクトリの指定はvariables
のSECURE_FILES_DOWNLOAD_PATH
で指定できます。
さいごに
今回紹介した macOS SaaS Runner と GitLab Mobile DevOps は、fastlane と組み合わせることで、GitLab CI/CDをより有効活用することができます。
fastlane: モバイルアプリのビルド・テスト・配布などのタスクを自動化するためのツール
GitLab CI/CD での fastlane セットアップ方法