Github Actions超入門

はじめに

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できる

参考

タイトルとURLをコピーしました