PR

GitHub Actionsとは?仕組みや使い方を3分でわかりやすく

IT-Skills

GitHub Actionsは、GitHub上でリポジトリ内のコードの変更を自動的にチェックしたり、テストしたり、デプロイ(公開)したりする仕組みのこと。

ポイント GitHub Actionsの仕組み【概要】

自動化:GitHub Actionsは特定のイベントが起こったときに自動で何かを実行する仕組み。コードをリポジトリにプッシュ(アップロード)したり、プルリクエストを作成したりする「イベント」を定義し、そのイベントを契機に動作する。

ワークフロー:ワークフローとは、どのようなイベントが発生したときに何をするかを定義したもの。例えば、「コードをプッシュしたときにテストを実行する」など。

ジョブ:ワークフローの中で行われる一連の作業をジョブと呼ぶ。ジョブはさらに細かいステップに分けられ、それぞれ具体的な作業内容を定義する。

この基本知識をベースに、具体的にGitHub Actionsを定義・実行する方法をご説明します。

スポンサーリンク

GitHub Actionsの使い方:ワークフロー

GitHub Actionsを理解するための最も重要なポイントは、ワークフローファイル(workflowファイル)。このファイルが、どのようなイベントでどのようなアクションを実行するかを定義しており、逆に言えばこのファイルを作成することができれば、GitHub Actionsを利用することができるようになります。

ステップ1:workflowファイルの作成

リポジトリのトップページに移動。「Add file」ボタン→「Create new file」で、ファイル名.github/workflows/main.ymlと入力。このディレクトリとファイルがワークフローファイルの標準的な場所です。

ファイル名はなんでもOK。ディレクトリは固定ですが、目的に応じてファイル名は使い分けOKです。

.github/workflows/ci.yml

.github/workflows/deploy.yml

.github/workflows/test-workflow.yml

ステップ2:workflowの定義(yaml)

GitHub ActionsのworkflowファイルはYAML形式で記述され、インデントによる階層構造やキーと値のペア、リストの表現が特徴です。このYAMLファイルを正しく記述することで、さまざまな自動化タスクを簡単に設定できます。

name: Java CI

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Check out repository code
      uses: actions/checkout@v2

    - name: Set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'

    - name: Build with Maven
      run: mvn -B package --file pom.xml

    - name: Run tests
      run: mvn test

ポイントとなる部分をピックアップして解説します。

1.ワークフローの名前

name: ワークフローの名前を指定します。この名前はGitHubの「Actions」タブで表示されます。

name: Java CI

2.イベントのトリガー

on: ワークフローが実行されるイベントを指定します。この例では、push(コードがプッシュされたとき)とpull_request(プルリクエストが作成されたとき)にワークフローがトリガーされます。

on: [push, pull_request]

3.ジョブの定義

jobs: 実行するジョブを定義します。

  • build: ジョブの名前。この名前は任意。ここでは他のジョブと区別するためにbuildとしています。
  • runs-on: ジョブが実行される環境を指定します。この例ではubuntu-latestを使用しています。
jobs:
  build:
    runs-on: ubuntu-latest

4.ステップの定義

steps: ジョブ内の各ステップを定義します。各ステップは順番に実行されます。

  • name: ステップの名前を任意で指定。ステップが何をするかを説明することが一般的。
  • uses: 既存のアクションを利用する場合に使用します。ここでは、リポジトリのコードをチェックアウトするactions/checkout@v2アクションを使用しています。
steps:
  - name: Check out repository code
    uses: actions/checkout@v2
  • with: アクションに渡すパラメータを指定します。ここでは、actions/setup-java@v2アクションを使用して、Javaバージョン11をセットアップしています。
  - name: Set up JDK 11
    uses: actions/setup-java@v2
    with:
      java-version: '11'
  • run: シェルコマンドを直接実行する場合に使用します。この例では、Mavenを使ってプロジェクトをビルドしています。(関連 Mavenとは?
  - name: Build with Maven
    run: mvn -B package --file pom.xml

このワークフローファイルをリポジトリに追加することで、コードがプッシュされたりプルリクエストが作成されたときに自動的にJavaプロジェクトがビルドされ、テストが実行されます。特別な設定は不要で、ファイルを所定のディレクトリに格納することで自動的にワークフローが実行されます。

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
IT-Skills
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました