【Git】GitHubActionsについて - j-komatsu/myCheatSheet GitHub Wiki
GitHub Actions について
読み方
GitHub Actions(ギットハブ アクションズ)
GitHub Actionsとは?
GitHub Actions は、GitHub 上で CI/CD(継続的インテグレーション / 継続的デリバリー)を自動化するためのワークフローエンジンです。 リポジトリに対するイベントをトリガーとして、さまざまなジョブ(テスト・ビルド・デプロイなど)を実行できます。
特徴
特徴 | 説明 |
---|---|
GitHub と統合 | GitHub リポジトリ内で直接設定・管理が可能 |
イベント駆動型 | プッシュやプルリクエストなどのアクションをトリガーにして実行可能 |
YAMLベースの設定 | .github/workflows/ ディレクトリ内の YAML ファイルでワークフローを定義 |
並列・逐次実行 | 複数のジョブを並列または依存関係に応じて逐次実行可能 |
カスタムアクション | 自作のアクションを作成して再利用可能 |
たとえ話
GitHub Actions は、レストランのキッチンのようなものです。
- シェフ(ジョブ):料理(タスク)を担当
- 注文(イベント):お客様(開発者)が料理をオーダーすると開始
- レシピ(YAML設定):どんな料理を作るか定義
- シェフたち(並列・逐次実行):複数のシェフが並行して調理できる
設定方法
GitHub Actions は .github/workflows/
フォルダ内に YAML ファイルを作成することで設定します。
基本構造
name: Example Workflow
on: [push, pull_request]
jobs:
example-job:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Run a script
run: echo "Hello, GitHub Actions!"
よく使う設定
トリガー(on)
設定 | 説明 |
---|---|
push |
リポジトリにプッシュされたとき |
pull_request |
プルリクエストが作成または更新されたとき |
schedule |
定期実行(cron形式) |
workflow_dispatch |
手動実行 |
ランナー(runs-on)
設定値 | 説明 |
---|---|
ubuntu-latest |
最新の Ubuntu 環境 |
windows-latest |
最新の Windows 環境 |
macos-latest |
最新の macOS 環境 |
ステップ(steps)
設定 | 説明 |
---|---|
uses |
既存のアクションを利用(例:actions/checkout@v4 ) |
run |
シェルコマンドを実行(例:echo "Hello" ) |
env |
環境変数を設定 |
サンプルワークフロー
Node.js の CI/CD
name: Node.js CI
on: push
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
Docker イメージのビルドとプッシュ
name: Build and Push Docker Image
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push Image
run: |
docker build -t my-image:latest .
docker tag my-image:latest my-dockerhub-username/my-image:latest
docker push my-dockerhub-username/my-image:latest
ワークフローの視覚的表現
graph TD;
push[pull_request / push] -->|Trigger| job1[Job 1 - Checkout]
job1 --> job2[Job 2 - Test]
job2 --> job3[Job 3 - Deploy]
まとめ
- GitHub Actions は GitHub に統合された CI/CD ワークフローエンジン
- YAML 形式でワークフローを定義
- イベントをトリガーにしてジョブを自動実行
- 既存のアクションを活用しながら自動化可能
- 具体例として Node.js のテストや Docker ビルドのサンプルを紹介
このページを参考に、自動化を進めてみてください!