LoginSignup
0
0

More than 1 year has passed since last update.

Github Actions の概要と設定ファイル【基礎】

Posted at

Github Actionsとは

  • Github のCI/CDツール
  • リポジトリと連携して、ビルド・テスト・デプロイを自動化できる
  • push, pull request, webhookを使用した外部イベントなどをトリガーとすることができる
  • 特定のブランチやディレクトリに対してトリガーを指定できる
  • ワークフロー設定ファイル(.yml)を複数置ける
  • テンプレートファイルが用意されている
  • 実行結果はGithubのActionsタブから確認できる

ワークフローの作成

  • リポジトリに.github/workflows というディレクトを作成し、その直下に.ymlまたは .yamlという拡張子でワークフロー設定ファイルを作成する
  • GithubページのActionsタブのNew workflowから作成することもできる

設定ファイル .yml

構造

name: sample-actions #ワークフローの名前
on: [push] #テストを実行するトリガー
jobs: #jobの定義
 job1: #jobの名前
    runs-on: ubuntu-latest #jobが実行される環境を定義
    steps: #jobが実行する処理
      - uses: #Actionを指定
      - run: #コマンドを指定
 job2:
  ...

サンプル

サンプルの設定ファイルを例に、各記述について見ていく
このサンプルでは、コードがpushされるたびにコードをチェックアウトし、batsテスティングフレームワークをインストールし、bats -vというbatsのバージョンを出力するコマンドが実行される。

sample.yml
name: learn-github-actions

on: [push]

jobs:
 check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v

Github Docs サンプルワークフローを作成する

name

  • Githubリポジトリに表示されるワークフロー名
  • 省略すると相対パスが名前となる

on

  • トリガーとなるイベントを指定する
  • 複数指定する場合は以下のように配列で記述できる
on: [push, pull_request] #どちらかが発生したときに実行される
  • 特定のブランチやディレクトリに対してのトリガーを指定できる
# masterブランチに対してpushした時に実行される
push: 
    branches: 
      - master

workflow_dispatch

  • サンプルには記載されていないが、ワークフローを手動で実行できるイベントとしてworkflow_dispatchがある
  • Actionsのタブ画面で、実行ブランチを選択できるUIがデフォルトで追加される
  • 実行時に独自のデータを付与することができる
#UIから name というデータを付与できる
on:
  workflow_dispatch:
    inputs:
      name:
        description: 'Name'
        required: true
#呼び出すときは以下のように記述する
run: echo "${{ github.event.inputs.name }}"

jobs

  • ワークフローファイルで実行されるjobを記述する
  • デフォルトではjobは並列で実行される

サンプルではcheck-bats-versionという名前のjobを一つだけ記述しているが、もちろん複数記述も可能

runs-on

  • jobを実行する仮想マシンを設定する
  • ubuntsu以外にもwindows-serverやmacosもサポートされている

steps

  • jobが実行する処理を記述する
  • uses でActionを指定
  • run でコマンドを指定
  • Githubで表示される名前をnameで指定できる。ワークフローのログに表示される。
steps:
    - name: First step
      uses: actions/checkout@v3

Action

  • stepを構成する最小単位で何かしらの一連の処理を表す
  • Github Actionsが提供していたり、独自のアクションを作成することもできる
  • パブリックリポジトリやDockerレジストリで公開されているActionを実行できる
#サンプルではactionsユーザーのcheckoutリポジトリというActionを指定している
uses: actions/checkout@v2

actions/checkout@v3

  • リポジトリをランナーにチェックアウトするアクション
  • コードに対してスクリプトや他のアクション(ビルドやテストツールなど)を実行できるようになる
  • ワークフローがリポジトリのコードに対して実行されるときに使う

actions/setup-node@v3

  • Node.jsの指定されたバージョンをインストールする
  • with でバージョンを指定する(サンプルではv14)

参考

Understanding GitHub Actions

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0