気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

GitHub Actionsの書き方(基本)

GitHub Actionsとは?

ビルド、テスト、デプロイなどを自動化するCI/CDプラットフォームのこと。GitHub内のサービスのため、GitHub内で完結することができる。

GiHub Actionsの仕組み

  • 設置場所:.github/workflows
  • ファイル形式:yml
  • 記載内容:ワークフロー
  • トリガー条件:push, pull_requestなど

WorkflowはJob単位で分けられて、Runner(仮想マシンインスタンス)上で実行される。

JobはさらにStep単位に分けられていて、この中でコマンドが実行される。

GiHub Actionsの書き方

job(処理の最上位単位)

jobは複数定義可能で並列実行される

jobs:
  my_job1:
    name: My job1
  my_job2
    name: My job2

on(処理実行条件を指定)

on: [push] # push時にjobsを実行
イベント 説明
push リモートリポジトリへpush時
pull_request プルリクエスト作成時
deployment デプロイ時
release リリース時
issues GitHub Issues関連の処理発生時
schedule cronによる定期実行

上記以外のイベントはこちらを参照

run-on(ジョブを実行するOS(ランナー)を指定)

runs-on: ubuntu-latest # ubuntuの最新版を指定

uses(第三者もしくはGitHubが作成したActionsを利用)

- name: Checkout
    uses: actions/checkout@v4

usesに指定できるActionsは以下で検索して調べる
GitHub Marketplace · Actions to improve your workflow · GitHub

@以下に指定するバージョンの扱いについては以下が詳しかった
GitHub Actions の uses でメジャーバージョンを参照するのはリスク マイナーバージョン指定が良さそう。信頼性が懸念される場合は、SHA指定が一番安全

Actionsの信頼性は、GitHub Marketplace の「Verified creator」バッジが参考になる

step, run(job内のstep要素とコマンド実行するrun)

リモートリポジトリにpushするとファイル構成の確認、actions/checkout@v4を実行する

name: command
on: [push]
jobs:
  command:
    name: Use Linux commands
    runs-on: ubuntu-20.04
    steps:
      - name: Inspect files before checkout
        run: ls -la # Linuxコマンドを実行可能
      - name: Checkout
        uses: actions/checkout@v4 # ワークフローを実行するリポジトリをチェックアウト

env(ワークフロー内に環境変数を設定)

変数名: 設定値という書き方で設定可能

env:
  SECRET_KEY: test
  ALLOWED_HOSTS: 127.0.0.1

参考URL