
内容紹介
本書の対象読者は、アプリ開発やゲーム開発に関与する方々で、自動化に興味があるものの、「どこから始めたらいいのか」に頭を悩ませている皆さんです。そこで、本書では、GitHub Actions の基本操作から具体的な利用例まで、幅広く説明しています。本書を参考にすれば、ビルドから配布までのプロセスを自動化するための基本的な知識が身につくでしょう。さらに高度な自動化のテクニックも、GitHub Actionsの応用例を通じて解説しています。
書誌情報
- 著者: 秦泉寺 章夫
- 発行日: 2025-09-09 (紙書籍版発行日: 2025-09-09)
- 最終更新日: 2025-09-09
- バージョン: 1.0.0
- ページ数: 303ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: アスキードワンゴ
対象読者
著者について
秦泉寺 章夫

株式会社クラウドクリエイティブスタジオ(CLOUD CREATIVE STUDIOS, INC.)代表取締役/CEOプログラマー、Scrum Alliance認定スクラムマスター(CSM)、GitHub Actions Certificate取得
2011年株式会社クラウドクリエイティブスタジオを設立。アーケード筐体/コンシューマー機/モバイル端末を問わず、特にオンラインを主としたリアルタイム対戦タイトルの開発を得意とする。関西を拠点とするゲーム開発会社による任意団体であるGame Innovators Portal West(GIPWest)の中核メンバーとして活躍し、一般社団法人デジタルエンターテインメントクリエイター協会(DIGITAL ENTERTAINMENT CREATORS ASSOCIATION, DECA)の理事を務めることで、業界の発展に貢献している。さらに、マイクロソフトのクラウドプラットフォームであるMicrosoftAzureを基盤とした「Game Platform for Azure™」の開発と提供を通じて、安定性と高負荷処理能力を兼ね備えたサービスを提供することで、最先端の技術を活用した新たな開発環境の創出に努めている。
GitHub: @akiojin
X: @akiojin
Facebook: @akiojin
Qiita: @akiojin
目次
第1章 自動化
- 1.1 自動化とは?
- 1.2 自動化を導入するメリット
- 1.3 自動化するメリット
- 1.4 自動化の代表的なサービス
- 1.4.1 GitHub Actions
- 1.4.2 Azure Pipelines
- 1.4.3 CircleCI
- 1.4.4 Jenkins
- 1.5 どのサービスを利用するべきか?
- 1.5.1 なぜ私はJenkinsを使わなくなったのか?
- 1.5.2 GitHub Actionsを選択する理由は?
- 1.5.3 どのサービスが最適なのか?
第2章 GitHub Actionsの基本
- 2.1 GitHub Actionsとは?
- 2.2 ワークフロー
- 2.2.1 ワークフローのディレクトリ構成
- 2.3 ランナー
- 2.3.1 GitHubホストランナー
- 2.3.2 セルフホストランナー
- 2.4 料金および使用制限
- 2.4.1 無料枠
- 2.4.2 料金プランの確認方法
- 2.4.3 共通の使用制限
- 2.4.4 GitHubホストランナーの使用制限
- 2.4.5 標準的なGitHubホストランナーの制限
- 2.4.6 セルフホストランナーの使用制限
第3章 GitHub Actionsの作成と実行
- 3.1 リポジトリの作成とクローン
- 3.2 ワークフローの作成
- 3.3 ワークフローの実行と確認
- 3.4 ワークフローの解説
- 3.4.1 Set up job
- 3.4.2 Run echo "Hello, World!"
- 3.4.3 Complete job
- 3.5 ワークフローの各要素
- 3.5.1 name
- 3.5.2 on
- 3.5.3 jobs
- 3.5.4 runs-on
- 3.5.5 steps
第4章 ワークフローの基本要素
- 4.1 ランナーの指定
- 4.1.1 ランナーの詳細な指定
- 4.1.2 GitHubホストランナーのOSバージョンを指定
- 4.2 イベント
- 4.2.1 リポジトリイベント
- 4.2.2 スケジュールイベント
- 4.2.3 手動イベント
- 4.3 ジョブ
- 4.3.1 ジョブの構成要素
- 4.3.2 ジョブのライフサイクル
- 4.3.3 ジョブの制御
- 4.3.4 ジョブの例
- 4.3.5 ジョブの並列処理
- 4.3.6 ジョブの直列処理
- 4.3.7 ジョブのキャッシュ
- 4.4 アクション
- 4.4.1 アクションの基本的な使い方
- 4.4.2 定義済みのアクションの利用
- 4.4.3 アクションのパラメーター
- 4.4.4 GitHubマーケットプレイスでのアクションの検索
- 4.4.5 自作のアクションの利用方法
- 4.4.6 アクションのプロパティ
- 4.5 変数
- 4.5.1 変数の適用範囲と利用法
- 4.5.2 環境変数
- 4.5.3 環境変数の種類
- 4.5.4 環境変数の一覧表示
- 4.5.5 環境変数の参照方法
- 4.5.6 環境変数の定義と参照可能範囲
- 4.5.7 環境変数の定義・更新
- 4.5.8 環境変数のオーバーライド
- 4.5.9 GitHub Actionsが設定する環境変数
- 4.5.10 構成変数
- 4.5.11 構成変数の定義と優先度
- 4.5.12 構成変数の適用先
- 4.5.13 構成変数の参照
- 4.5.14 構成変数の追加・更新・削除
- 4.5.15 構成変数の追加
- 4.5.16 構成変数の更新
- 4.5.17 構成変数の削除
- 4.5.18 構成変数のオーバーライド
- 4.5.19 シークレット
- 4.5.20 シークレットの追加・更新・削除
- 4.5.21 シークレットの追加
- 4.5.22 シークレットの更新・削除
- 4.5.23 シークレットのオーバーライド
- 4.5.24 シークレットのマスク
- 4.6 同時実行制御
- 4.6.1 例1:ブランチごとの同時実行制御
- 4.6.2 例2:実行中のワークフローをキャンセルして新しいワークフローを開始
- 4.6.3 例3:ワークフロー名で同時実行制御を行う
- 4.7 マトリックス
- 4.7.1 例1:マトリックスを用いた単一パラメーターでのジョブ自動生成
- 4.7.2 例2:マトリックスを用いた複数パラメーターでのジョブ自動生成
- 4.7.3 同時並行処理制御
- 4.8 タイムアウト
- 4.8.1 例:ジョブのタイムアウトを1分に設定する
- 4.9 コンテキスト
- 4.9.1 コンテキストへのアクセス方法
- 4.9.2 コンテキストの種類
- 4.9.3 githubコンテキスト
- 4.9.4 envコンテキスト
- 4.9.5 varsコンテキスト
- 4.9.6 stepsコンテキスト
- 4.9.7 runnerコンテキスト
- 4.9.8 secretsコンテキスト
- 4.9.9 strategyコンテキスト
- 4.9.10 matrixコンテキスト
- 4.9.11 needsコンテキスト
- 4.9.12 inputsコンテキスト
第5章 自動化のための環境構築
- 5.1 セルフホストランナーのセットアップ
- 5.1.1 アプリ用リポジトリの作成
- 5.1.2 GitHub Actionsにセルフホストランナーを登録する
- 5.1.3 セルフホストランナーの動作確認
- 5.1.4 サービスによる起動
- 5.1.5 サービスのインストール
- 5.1.6 サービスのステータスチェック
- 5.1.7 サービスの起動
- 5.1.8 サービスの停止
- 5.1.9 サービスのアンインストール
- 5.1.10 ランナーソフトウェアの更新
- 5.1.11 ランナーの削除
- 5.2 Xcode command line toolsのインストール
- 5.2.1 Xcode command line toolsのアップデート
- 5.2.2 Xcode command line toolsのバージョン確認
- 5.2.3 再インストール
- 5.3 Homebrewの導入
- 5.3.1 Homebrewのパスを通す
- 5.3.2 Homebrewのインストール確認
- 5.3.3 Homebrewのアップデート
- 5.3.4 Xcodeの使用許諾
- 5.4 Git Credential Managerの設定
- 5.4.1 GCMが必要な理由
- 5.4.2 GCMに必要なセットアップ
- 5.4.3 GCMのインストール
- 5.4.4 GCMのインストール確認
- 5.5 fastlaneのインストール
- 5.5.1 fastlaneを使うメリット
- 5.5.2 fastlaneでできること
- 5.5.3 fastlaneで使用する認証
- 5.5.4 fastlaneをインストールする
- 5.5.5 fastlaneのインストール確認
- 5.5.6 fastlaneのアップデート
- 5.6 ワークフローの権限設定
- 5.6.1 ワークフローの権限設定方法
- 5.6.2 リポジトリの権限設定
- 5.6.3 組織の権限設定
第6章 Unityプロジェクトの配布
- 6.1 fastlaneによるアプリ登録とプロビジョニングプロファイルおよび証明書の作成(iOS)
- 6.1.1 fastlaneを使用してアプリを登録
- 6.1.2 証明書とプロビジョニングプロファイルの作成
- 6.1.3 証明書とプロビジョニングプロファイルの削除
- 6.2 Google Play Consoleでアプリの作成(Android)
- 6.3 簡単なUnityプログラムの作成
- 6.3.1 Unityプロジェクトの作成
- 6.3.2 プロジェクトのビルド設定(共通設定)
- 6.3.3 アプリアイコンの設定
- 6.4 プロジェクトのビルド(iOS)
- 6.4.1 TestFlight
- 6.4.2 内部テストの追加
- 6.4.3 UnityのiOSのビルド
- 6.4.4 Xcodeによるビルドと署名
- 6.5 プロジェクトのビルド(Android)
- 6.5.1 UnityのAndroidのビルド設定
- 6.5.2 署名用の鍵の作成
- 6.5.3 内部テストの追加
第7章 Unityプロジェクトの自動化
- 7.1 ビルドの自動化
- 7.1.1 自動ビルドのワークフローで行うこと
- 7.1.2 ワークフローの作成
- 7.1.3 ワークフローの実行
- 7.1.4 ワークフローの手動実行
- 7.1.5 ワークフローの解説
- 7.2 パッケージの配布の自動化
- 7.2.1 App Store Connect APIの設定
- 7.2.2 Googleサービスアカウントの設定
- 7.2.3 パッケージ配布のワークフローの作成
- 7.2.4 パッケージ配布のワークフローの解説
- 7.2.5 パッケージのインストール
第8章 エディタースクリプトを実行する
- 8.1 ワークフローから実行するUnityエディタースクリプトの作成
- 8.1.1 ビルド前に実行するエディタースクリプト
- 8.1.2 ビルド後に実行するエディタースクリプト
- 8.1.3 動作確認用のスクリプト
- 8.2 ワークフローの作成
- 8.2.1 ワークフローの実行
- 8.2.2 ワークフローの解説
第9章 プロビジョニングプロファイルおよび証明書の自動更新
- 9.1 プロビジョニングプロファイルおよび証明書の自動更新のメリット
- 9.2 GitHubパーソナルアクセストークンの作成
- 9.2.1 PATの利用上の注意点
- 9.2.2 PATの作成
- 9.2.3 PATの再作成
- 9.3 Git認証情報
- 9.3.1 Git認証情報を保存
- 9.3.2 Git認証情報の削除
- 9.4 自動更新用リポジトリの準備とワークフローの作成
- 9.4.1 シークレットの設定
- 9.4.2 自動更新用のワークフローの作成
- 9.4.3 自動更新用のワークフローの解説
第10章 Dependabotによるワークフローの自動更新
- 10.1 Dependabotの機能
- 10.1.1 Dependabot alerts
- 10.1.2 Dependabot security updates
- 10.1.3 Dependabot version updates
- 10.2 Dependabotの設定
- 10.2.1 リポジトリ単位の設定
- 10.2.2 デフォルト設定
- 10.3 Dependabotによるアクションの自動更新
- 10.4 Dependabot version updatesの設定
- 10.4.1 自動マージのワークフロー
- 10.5 セマンティックバージョニング
- 10.5.1 セマンティックバージョニングのメリット
第11章 ブランチの保護
- 11.1 ブランチの保護ルールの設定
- 11.1.1 Require a pull request before merging
- 11.1.2 Require status checks to pass before merging
- 11.1.3 Require conversation resolution before merging
- 11.1.4 Require signed commits
- 11.1.5 Require linear history
- 11.1.6 Require deployments to succeed before merging
- 11.1.7 Lock branch
- 11.1.8 Do not allow bypassing the above settings
- 11.2 ブランチの保護ルールの設定例
第12章 本書で使用されるアクション一覧
- 12.1 actions/checkout
- 12.2 dependabot/fetch-metadata
- 12.3 publish-testflight-github-action
- 12.4 publish-googleplay-github-action
- 12.5 setup-store-connect-api-json-github-action
- 12.6 setup-xcode-environment-github-action
- 12.7 store-git-credential-github-action
- 12.8 unity-build-github-action
- 12.9 unity-command-github-action
第13章 よくある自動化時のエラーと対処法
付録A YAMLの基本構文
- A.1 キーと値
- A.2 型認識
- A.3 階層構造
- A.4 コメント
- A.5 配列
- A.6 連想配列(マップ)
- A.7 文字列クォート