こんにちは。Takeshita Shunjiです。
今回は、僕が最近利用した、DevOpsやCI/CDを実現する手法の1つであるGithub Actionsの概要と簡単な導入方法を紹介します。
目次
- Github Actionsとは
- どんなことができるか
- 簡単なチュートリアル
Github Actionsとは
Github上に用意されいている、CI/CD環境をのことです。
CI/CDとは、ソフトウェア開発におけるビルド、テストやデプロイなどを自動化し、継続的に行うアプローチのことを指します。
Github上のイベントをトリガーとして、テストしたりビルドしたりといった様々な処理(ワークフロー)を自動化することができます。
Githubのアカウントがあれば、基本無料で利用することができ、Github上のタスクに対して、様々なワークフローが提供されています。
どんなことができるのか
上述の通り、Github上のイベントをトリガーとして、あらかじめ定義した様々なワークフローを自動で実行できます。
Github上のイベントとしては、プッシュやプルリクエストといった操作やIssue作成などがあります。
これらのイベントをトリガーとしてワークフローを実行します。
定義するワークフローとしては、単純なレポジトリ内のファイルやProjectへのアクセスに始まり、コンテナアプリ構築やWebサービスと連携することも可能です。
ワークフローは、Marketplaceで提供されているものを利用することも可能です。
簡単なチュートリアル
Github Actionsのチュートリアルとして、Pushすると事前に定義されたワークフローが実行されHello Worldが出力されるようなものを作成します。
チュートリアルにはGithubアカウントが必要です。
- Githubレポジトリを作成
- ワークフローフォルダの作成
- プッシュをトリガーとしてワークフローを自動実行
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
で実装したCheckout
やRun echo command
が正しく実行されています。
Hello, World!
がちゃんと出力されていますね!
まとめ
- Github ActionsはGithub上の操作を自動化できるツール
.github/workflow/*yaml
でワークフローを定義できる
今回紹介したechoを実行するワークフロー以外にもGithub Actionsは様々なことができます。
資料やテンプレートが充実しているので良かったら確認してみてください。
yaml
ファイルのトリガー(on
)にworkflow_dispatch:
を追記することで、ActionsタブのRun workflow
ボタンでワークフローを手動で実行できます ↩︎