この記事では、GitHub CLI (gh) のセットアップ手順と、GitHub Actions のワークフロー構文の基本的な書き方をまとめます。
1. GitHub CLI (gh) のセットアップ
1-1. インストール
GitHub CLIは、リポジトリの操作やPRの作成・レビューなどをコマンドライン上で行える便利なツールです。各OSごとにインストール手順が異なります。
macOS:
brew install gh
Ubuntu (Deb系):
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh
Windows:
GitHub公式のインストーラーでインストール
またはchocolateyを利用して choco install gh でインストール
1-2. ログイン
インストール後、下記コマンドでGitHubにログインします。
gh auth login
対話式のプロンプトでGitHubアカウントの認証を行います。ログインが成功すると、GitHub CLI上でリポジトリ操作やIssue/Pull Requestなどの操作が可能になります。
2. GitHub Actionsのワークフロー構文基礎
GitHub Actionsは、GitHub上でCI/CDパイプラインを構築するためのプラットフォームです。リポジトリ内の .github/workflows/ ディレクトリにYAMLファイルを配置することで、さまざまなイベントに応じてスクリプトやジョブを実行できます。
2-1. 基本の構文
以下は簡単なワークフローの例です。プルリクエストが作成されたときにテストを実行するものとします。
name: Run Tests on Pull Request
on:
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Dependencies
run: npm install
- name: Run Tests
run: npm test
name: ワークフローの名前
on: どのイベントでトリガーされるか
ここでは pull_request がトリガーとなり、対象ブランチを main に絞っています
jobs: ワークフローの実際の処理
runs-on ではジョブが実行される環境を指定
steps ではそのジョブ内で実行する具体的なステップを定義
2-2. onセクションの書き方
on セクションには、以下のようなトリガーを指定可能です。
・push
・pull_request
・workflow_dispatch (手動トリガー)
・schedule (cron)
・release
・etc.
複数のイベントを指定する場合:
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
2-3. 変数の扱い
GitHub Actions内で独自の変数を利用したいときは、 env: を使って環境変数として定義します。
env:
NODE_ENV: test
また、GitHubが用意しているコンテキスト ( GITHUB_REF や GITHUB_SHA など) やSecrets (機密情報) を参照することもできます。
steps:
- name: Print Env
run: echo "Branch is $GITHUB_REF"
2-4. jobsセクション
複数のジョブを定義し、それらを並列または依存関係付きで実行できます。
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm run build
test:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v3
- run: npm test
needs: build のように記述すると、 test ジョブは build ジョブが完了してから実行されます。
3. まとめ
GitHub CLI は、GitHubリポジトリの操作をCUIベースで効率化するために活用できます。ローカル環境とGitHub間のやりとり (Issue管理やPull Request作成・レビューなど) がコマンドライン一発で行えるため、大変便利です。
GitHub Actions は、YAMLファイルでイベントやジョブを定義し、CI/CDパイプラインを簡単に実装可能です。基本的な構文と設定方法を押さえておくと、さまざまな開発フローを自動化できます。
これらを組み合わせて、ローカルからPRを作成し、それに対して自動テストやデプロイを実行する流れを組むことができれば、一連の開発サイクルが効率化されます。