GitHub Actionsの概要
はじめに
GitHub Actionsは、テスト、ビルド、デプロイなどの作業を自動化し開発効率を向上させることができる非常に重要なツールです。
今ではマストになる技術のため、本記事でふれていきます。
GitHub Actions
GitHubのリポジトリ内でCI/CD(Continuous Integration/Continuous Deployment)などの自動化ワークフローを作成するためのツールです。
公式ドキュメント: https://docs.github.com/en/actions
用途
テストの自動化
コードがプッシュされたときやプルリクエストが作成されたときに自動的にテストを実行します。
デプロイの自動化
特定のブランチにマージされたときや新しいリリースが作成されたときに自動的にデプロイを行います。
定期的なタスクの実行
特定の時間や間隔でスクリプトを実行します。
例えば、毎日データベースのバックアップを取る、毎週レポートを生成するなどのタスクを自動化することができます。
設定方法
GitHub Actionsを設定するには、リポジトリのルートディレクトリに.github/workflowsというディレクトリを作成し、その中にワークフローファイル(YAML形式)を作成します。
GitHubActionsでは任意のジョブを実行するためのアクションを発見・作成・共有することができる機能が備わっています。
ワークフローファイルでは、どのイベントに対してどのアクションを実行するかを定義します。
# .github/workflows/test.yml name: Run tests on: [push] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: '14' - name: Install dependencies run: npm ci - name: Run tests run: npm test
yamlの各階層の記述の詳細は以下の通りです。
name: Run tests
ワークフローの名前を設定します。これはGitHubのUIで表示されます。
on: [push]
このワークフローがどのGitHubのイベントに対して実行されるかを指定します。
今回は、コードがプッシュされたときにワークフローが実行されます。
on: pushとも書けます。
runs-on: ubuntu-latest
ワークフローが実行される環境を指定します。今回は、最新のUbuntu環境を使用します。
uses: actions/checkout@v2
リポジトリのコードをチェックアウトします。これにより、ワークフローは最新のコードに対して動作します。
uses: actions/setup-node@v2
Node.jsをセットアップします。with:以下で、使用するNode.jsのバージョンを指定します。
run: npm ci
依存関係をインストールします。npm ciは、package-lock.jsonに記載された正確なバージョンのパッケージをインストールします。
run: npm test
テストを実行します。これは、package.jsonのscriptsセクションに定義されたテストスクリプトを実行します。
このようにYAMLファイルで構成されたワークフローファイルを設定することで、GitHub Actionsを動作させることができます。
実用例として、RailsではRSpecやRubocop、ReactなどのフロントエンドではJestやes-lintを動作させることができます。
おしまい
コメント
本記事の内容は以上になります!
今後も重要となってくる知識のため、頭に入れておくと良さそうです。
引き続き別の内容もまとめていきたいと思います。