GitHub Actionsは、リポジトリで発生するイベント(プルリクエストの作成やプッシュなど)をトリガーとして、自動的にタスクを実行できるツールです。
テストの自動実行、デプロイ、コードの静的解析などで使われます。
今回はその基本的な使い方について解説します。
基本的な使い方
ワークフローの作成
GitHub Actionsの設定ファイルは、リポジトリの .github/workflows
ディレクトリに保存します。
まず、簡単なワークフローを作成してみます。
name: CI Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Run lint
run: npm run lint
詳細を説明します。
ワークフローのトリガー
name: CI Pipeline
このワークフローの名前です。任意の名前を指定。
on:
push:
branches:
- main
onではgithubでどのイベントが起きた時に、このワークフローを実行するか?を定義します。
この場合は、mainブランチにpushされた時に実行します。
イベントの一覧はこちらです↓
ジョブとステップ
jobs:
build:
runs-on: ubuntu-latest
jobsで、実行したいjobを定義します。
buildという名前のjobを定義しています。ここの名前は任意です。
runs-onで、どの実行環境にするかを定義します。
「ubuntu-22.04」のように、特定のバージョンを指定することもできます。
windowsも選択可能ですが、大抵の場合はubuntuで事足ります。
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Run lint
run: npm run lint
stepsで、実行したいコマンドをリストで定義します。
nameに実行したいステップの名前(任意)、runにコマンドを記述します。
アクションの利用
usesでは、既存のアクションを指定します。アプリケーションでいうライブラリのようなものです。
数多くのアクションが、マーケットプレイスで公開されています。
よく使うアクションの例
コードのチェックアウト: actions/checkout
Node.js のセットアップ: actions/setup-node
AWSへのデプロイ: aws-actions/configure-aws-credentials
これらのアクションを利用する場合、作者が信頼できるか確認しましょう。
悪意あるアクションが含まれている可能性もあるので注意。
実際に実行する
簡単なReactアプリを作成し、上記で作成したCIのワークフローを流してみます。
このようにして、実行結果を確認することができます。
試しにciで失敗するようなコードを書くと、
該当箇所でコケることがわかります。
まとめ
GitHub Actionsは、自動化、効率化を大きく向上させるツールです。
CI/CDの自動化のみならず、チーム内でのGitHub運用ルールの強制に大きく役立ちます。
基本を理解したら、さらに複雑なワークフローを設計して、開発プロセス全体を自動化してみてください。