はじめに
Github Actionsについて、簡単なワークフローを作成して実際に試してみたいと思います。
Github Actionsとは
Github Actionsとは、Githubが提供するCI/CDツールです。
Githubのリポジトリに作成する形で管理され、Githubでのイベントなどをトリガーにワークフローが実行されます。
基本的な概念
Github Actionsで出てくる基本的な概念についてまとめます。
ワークフロー
- 自動化する一連の手順
- 1つ以上のジョブから構成される
- スケジュールまたはイベントによりトリガーできる
- 複数のワークフローを作成できる
イベント
- ワークフローをトリガーするアクティビティ
- Githubでのコミットやプッシュなど
- webhookを使用した外部イベント
ジョブ
- 一連のステップの集まり
- 同じランナーで実行される
- 複数のジョブを並行/順番に実行できる
ステップ
- アクションまたはコマンドの集まり
- コマンドを実行できる個々のタスク
- 同じジョブのステップでデータを共有
アクション
- ワークフローの最小構成要素となるコマンド
- 公開されているものを使うことができる
- 独自で作ることも可能
ランナー
- Github Actionsが動くサーバー
- Ubuntu/Windows/macOSが選べる
- 自分のランナーをホストすることも可能
とりあえず動かす
とりあえず動かしてみます。
まずはGithub Actionsを試すためのリポジトリを作成します。
ワークフローの作成
作成したリポジトリにワークフローファイルを保存するための.github/workflows
ディレクトリを作成します。
.github/workflow
ディレクトリに下記の内容でsample.yml
ファイルを作成します。
name: GitHub Actions Demo
on: [push]
jobs:
Explore-GitHub-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
- run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
- name: Check out repository code
uses: actions/[email protected]
- run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."
プッシュ
変更をコミットして、プッシュするとワークフローがトリガーされ、実行されます。
❯ git add .
❯ git commit -m "add Github Actions Workflow"
❯ git push
結果の確認
対象のリポジトリの「Actions」から確認すると、先ほどのプッシュで実行されたワークフローが確認できます。
ワークフローをクリックすると、実行したジョブの結果が確認できます。
さらにジョブを選択すると、ステップの結果が確認できます。コマンドとアクションの実行も確認できます。
基本的な構文
基本的な構文を抜粋して紹介します。
name
ワークフローの名前。
name: workflow-name
on
ワークフローをトリガーするイベントの名前。
on: [push, pull_request]
jobs
ジョブを定義。
jobs:
my_first_job:
name: My first job
my_second_job:
name: My second job
runs-on
ランナーの指定。
runs-on: ubuntu-latest
steps
ステップの定義。
steps:
# 特定のコミットを参照
- uses: actions/[email protected]
# リリースのメジャーバージョンを参照
- uses: actions/[email protected]
# リリースのマイナーバージョンを参照
- uses: actions/[email protected]
# ブランチを参照
- uses: actions/[email protected]
uses
アクションを実行。
- name: My first step
uses: docker://alpine:3.8
run
コマンドを実行。
- name: Install Dependencies
run: npm install
まとめ
- GithubのリポジトリでCI/CDできる