Github Actionsのすすめ

こんにちは。Takeshita Shunjiです。
今回は、僕が最近利用した、DevOpsやCI/CDを実現する手法の1つであるGithub Actionsの概要と簡単な導入方法を紹介します。

目次

  1. Github Actionsとは
  2. どんなことができるか
  3. 簡単なチュートリアル

Github Actionsとは

Github上に用意されいている、CI/CD環境をのことです。

CI/CDとは、ソフトウェア開発におけるビルド、テストやデプロイなどを自動化し、継続的に行うアプローチのことを指します。

Github上のイベントをトリガーとして、テストしたりビルドしたりといった様々な処理(ワークフロー)を自動化することができます。
Githubのアカウントがあれば、基本無料で利用することができ、Github上のタスクに対して、様々なワークフローが提供されています。

どんなことができるのか

上述の通り、Github上のイベントをトリガーとして、あらかじめ定義した様々なワークフローを自動で実行できます。
Github上のイベントとしては、プッシュやプルリクエストといった操作やIssue作成などがあります。
これらのイベントをトリガーとしてワークフローを実行します。
定義するワークフローとしては、単純なレポジトリ内のファイルやProjectへのアクセスに始まり、コンテナアプリ構築やWebサービスと連携することも可能です。
ワークフローは、Marketplaceで提供されているものを利用することも可能です。

簡単なチュートリアル

Github Actionsのチュートリアルとして、Pushすると事前に定義されたワークフローが実行されHello Worldが出力されるようなものを作成します。
チュートリアルにはGithubアカウントが必要です。

  1. Githubレポジトリを作成
  2. ワークフローフォルダの作成
  3. プッシュをトリガーとしてワークフローを自動実行

1. Github レポジトリを作成

Github Actionsチュートリアルの準備として、任意の名前(ここではsample-project)でレポジトリを作成しておきます。

2. ワークフローフォルダの作成

Github Actionsでワークフローを作成するためには、.github/workflowsフォルダ下にyamlファイルを設置する必要があります。
今回は、レポジトリのActionsタブにあるset up a workflow yourselfを選択することで、.github/workflows/main.yamlを作成・編集していきます。

main.yamlの編集画面で以下をコピペします。
ワークフローの内容としては、mainブランチへのpushをトリガーとしてHello World!を出力します。

# workflowの名前
name: Hello World

# トリガーの設定
on:
  workflow_dispatch: # 手動実行用
  push:
    branches: main

# 実行するjobの設定
jobs:
  build:
    runs-on: ubuntu-latest # 実行環境

    steps:
      - name: Checkout
        uses: actions/checkout@v2 # 実行ブランチ

      - name: Run echo command
        run: echo Hello, world! # Hello World!と出力する
 

Start commitボタンを押してコミットします。

3. プッシュをトリガーとしてワークフローを自動実行

上記のコードは、Pushすることでワークフローが起動します。
実際にPushして確認してみましょう。
もしくは、README.mdをGithub上から編集するか手動実行[1]でも起動します。

git add .
git commit -m "first github actions"
git push --set-upstream origin main

PushできたらActionsタブへ移動します。

Commitメッセージともにmain.yamlに実装したHello Worldワークフローが起動されたことがわかります。
first github actions(commitメッセージ名)→buildと押して、ステップの詳細を確認してみましょう。

jobs内のstepsで実装したCheckoutRun echo commandが正しく実行されています。
Hello, World!がちゃんと出力されていますね!

まとめ

  • Github ActionsはGithub上の操作を自動化できるツール
  • .github/workflow/*yamlでワークフローを定義できる

今回紹介したechoを実行するワークフロー以外にもGithub Actionsは様々なことができます。
資料やテンプレートが充実しているので良かったら確認してみてください。


  1. yamlファイルのトリガー(on)にworkflow_dispatch:を追記することで、ActionsタブのRun workflowボタンでワークフローを手動で実行できます ↩︎