GitHub Actionsを使用するための基本的な知識
はじめに
GitHub Actionsは、GitHubが提供するCI/CD(継続的インテグレーション/継続的デリバリー)ツールです。これを使用することで、コードのビルド、テスト、デプロイなどのプロセスを自動化し、ソフトウェア開発の効率を向上させることができます。
この記事では、GitHub Actionsを使用するための基本的な知識を紹介します。
GitHub Actionsの基本概念
1. ワークフロー(Workflow)
ワークフローは、特定のトリガー(イベント:プッシュやプルリクエストなど)が発生した時に実行される一連の自動化されたタスクのことです。ワークフローはYAML形式で定義され、リポジトリ内の.github/workflows
ディレクトリに配置されます。
2. ジョブ(Job)
ジョブは、ワークフロー内で実行される個別タスクの単位です。ジョブは複数のステップから構成され、指定されたランナー(実行環境)上で実行されます。
3. ステップ(Step)
ステップは、ジョブ内で実行される個別のコマンドまたはアクションです。ステップは順番に実行され、シェルコマンドを使用してタスクを実行します。
4. ランナー(Runner)
ランナーは、ジョブを実行するための仮想マシンまたはコンテナです。GitHubが提供するホストランナーと、自分自身のマシンを使用するセルフホストランナーがあります。
前提条件
GitHub Actionsを使用するために以下の前提条件が必要です。
- GitHubアカウントとリポジトリが設定されていること
- FlutterやDartプロジェクトがリポジトリに存在していること
ワークフローファイルの作成
GitHub Actionsの設定は、リポジトリ内の .github/workflows ディレクトリに配置するYAMLファイルで行います。このディレクトリが存在しない場合は、新たに作成してください。
【サンプル】ワークフローファイル
以下は、Flutterアプリケーション用のシンプルなワークフローファイルの例です。
name: Flutter CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: 'stable'
- name: Install dependencies
run: flutter pub get
- name: Run tests
run: flutter test
- name: Build APK
run: flutter build apk --release
ワークフローファイルの構成要素
name
ワークフローの名前を指定します。この名前はGitHub ActionsのUI上で表示されます。
on
ワークフローをトリガーするイベントを指定します。上記の例では、push および pull_request イベントがトリガーとして設定されています。
jobs
ワークフロー内のジョブを定義します。各ジョブは runs-on と steps で構成されます。
runs-on
ジョブが実行される仮想環境を指定します。通常は ubuntu-latest や windows-latest などを指定します。
steps
ジョブ内で実行される個々のステップを定義します。各ステップは、アクション(既製のものを uses で指定)またはコマンド(run で指定)を実行します。
主要なアクション
GitHub Actionsには、様々なアクションが用意されています。以下は、Flutterプロジェクトにおいてよく使われるアクションです。
- actions/checkout: リポジトリをチェックアウトします。
- subosito/flutter-action: Flutterをセットアップします。
- actions/upload-artifact: ビルド成果物をアップロードします。
環境変数とシークレット
GitHub Actionsでは、環境変数やシークレットを使用して機密情報を安全に管理できます。例えば、FirebaseトークンやAPIキーなどをシークレットとして設定し、ワークフローファイル内で利用することができます。
シークレットの設定
- GitHubリポジトリのページに移動します。
- Settings タブを選択します。
- Secrets and variables > Actions を選択します。
- New repository secret をクリックし、名前と値を入力します。
ワークフローファイル内では、以下のようにシークレットを参照できます。
- name: Deploy to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:
appId: ${{ secrets.FIREBASE_APP_ID }}
token: ${{ secrets.FIREBASE_TOKEN }}
groups: testers
file: build/app/outputs/flutter-apk/app-release.apk
まとめ
GitHub Actionsを使用することで、FlutterやDartアプリケーションのビルド、テスト、デプロイを自動化し、開発プロセスを効率化することができます。この記事で紹介した基本的な設定と使い方を参考に、あなたのプロジェクトにもぜひGitHub Actionsを導入してみてください。
Discussion