16
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub Actions で 自作Cocoapodsライブラリを自動デプロイする

Last updated at Posted at 2019-11-29

Treasure Advent Calendar 2019 7日目の記事です。

iOS向けライブラリを開発していたところ、バージョンを更新する際に毎回ローカルの環境で
pod trunk push Hoge.podspec をやっていたのですが、毎回やるのは面倒だということで自動でデプロイされるようにしました。
仕組みを作ろうとした際にハマったりしたので今後やろうとしている方の参考になると幸いです。

トークンを取得する

自作のCocoapodsライブラリをデプロイするためには環境変数にトークンを設定する必要があります。

ユーザー情報を登録する

pod trunk register コマンドを使用してユーザー情報を登録します。
コマンドを打つとメールが届くので、メール内にあるリンクに飛び、アクティベーションします。

pod trunk register ry-itto@example.com

トークンをファイルから取得する

ユーザー情報を登録したらローカル環境の ~/.netrc に以下のような情報が追加されていると思います。この情報の中の password がトークンに当たります。

machine trunk.cocoapods.org
  login ry-itto@example.com
  password jaeiwghwe83hlagw8

リポジトリに登録する

GitHubのリポジトリにアクセスし、設定画面を開きます。
スクリーンショット 2019-11-25 0.35.50.png

設定画面を開いたら、その中の"Secrets" を開きます。
スクリーンショット 2019-11-25 0.36.33.png

そしてその画面の中の"Add a new secret"を押し、
NameにCOCOAPODS_TRUNK_TOKEN, Valueに先ほど取得したトークンを入れます。

これでリポジトリへのトークンの登録は完了です。
スクリーンショット 2019-11-25 0.40.29.png
このようになっていればOKです。

ワークフローの設定ファイルを作成する

完成形は以下です。それぞれ部分ごとに説明をしていきます。
ワークフローの構文

name: pod-deploy

on:
  push:
    tags: v*

jobs:
  build:
    runs-on: macOS-latest
    steps:
    - uses: actions/checkout@v1
    - name: Lint
      run: pod spec lint
    - name: Deploy
      env:
        COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
      run: pod trunk push Hoge.podspec

処理を行うタイミングを設定する

v から始まるタグが作成された際に処理が行われるように設定。

on:
  push:
    tags: v*

行う処理を設定する

jobs:
  build: # 'build' という名前でジョブを作成
    runs-on: macOS-latest # GitHub Actionsで提供されているmacOSの最新版を使うように指定
    steps:
    - uses: actions/checkout@v1 # リポジトリの情報にアクセス
    - name: Lint
      run: pod spec lint # 作成したコードが正しいかチェック
    - name: Deploy
      env: # 環境変数に `COCOAPODS_TRUNK_TOKEN` を設定
        COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
      run: pod trunk push Hoge.podspec

自作したライブラリを公開するために COCOAPODS_TRUNK_TOKEN を環境変数に設定する必要があります。ここには序盤でリポジトリのSecretsに設定したトークンを設定します。
なお、リポジトリのSecretsに設定した値は secrets.設定したName で取得できます。

終わりに

思いの外簡単に自動デプロイの仕組みを作成することができました。
GitHub ActionsはPublicなリポジトリなら無料で利用できるため、ぜひ試してみてください。

おまけ

https://github.com/ry-itto/QiitaAPIKit
今回のワークフローを作成するにあたって自動化したライブラリです。フィードバックなどあればいただけるとありがたいです!

参考

Automated CocoaPod releases with CI

16
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?