Yanonoblog!

こつこつと

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.jsonscriptsセクションに定義されたテストスクリプトを実行します。

このようにYAMLファイルで構成されたワークフローファイルを設定することで、GitHub Actionsを動作させることができます。

実用例として、RailsではRSpecやRubocop、ReactなどのフロントエンドではJestやes-lintを動作させることができます。

おしまい

コメント

本記事の内容は以上になります!

今後も重要となってくる知識のため、頭に入れておくと良さそうです。

引き続き別の内容もまとめていきたいと思います。