Welcome to Tech Athletes | テック・アスリート   Click to listen highlighted text! Welcome to Tech Athletes | テック・アスリート

【2026年完全版】GitHub Actions CI/CD完全ガイド|Node.js・Python・Docker・AWS自動デプロイまで実践解説

GitHub Actionsとは?CI/CDを自動化する仕組み

GitHub ActionsはGitHubが提供するCI/CD(継続的インテグレーション/継続的デリバリー)プラットフォームです。コードのpush・PRのマージ・スケジュール実行など様々なイベントをトリガーに、テスト・ビルド・デプロイなどのワークフローを自動実行できます。パブリックリポジトリは無料で利用可能、プライベートリポジトリも月2,000分まで無料です。

GitHub Actionsの基本用語

  • Workflow:自動化されたプロセス全体(YAMLファイルで定義)
  • Event:ワークフローのトリガー(push・pull_request・scheduleなど)
  • Job:ワークフロー内の独立したタスクグループ
  • Step:Jobを構成する個々のタスク
  • Action:再利用可能なステップのパッケージ
  • Runner:ジョブを実行する仮想マシン(ubuntu・windows・macOS)

基本的なワークフロー:Node.jsアプリのCI

# .github/workflows/nodejs-ci.yml
name: Node.js CI

on:
  push:
    branches: [ main, develop ]
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [18.x, 20.x, 22.x]
    steps:
      - uses: actions/checkout@v4
      - name: Node.js セットアップ
        uses: actions/setup-node@v4
        with:
          node-version: {{ matrix.node-version }}
          cache: "npm"
      - run: npm ci
      - run: npm run lint
      - run: npm test -- --coverage

DockerビルドとContainer Registryへのプッシュ

# .github/workflows/docker-build-push.yml
name: Docker Build and Push

on:
  push:
    branches: [ main ]
    tags: [ "v*.*.*" ]

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Docker Buildx セットアップ
        uses: docker/setup-buildx-action@v3
      - name: GitHub Container Registryにログイン
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: ビルドとプッシュ
        uses: docker/build-push-action@v5
        with:
          context: .
          push: true
          cache-from: type=gha
          cache-to: type=gha,mode=max

AWSへの自動デプロイ(ECSへのデプロイ)

# .github/workflows/deploy-aws-ecs.yml
name: Deploy to Amazon ECS

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: AWS認証情報の設定
        uses: aws-actions/configure-aws-credentials@v4
        with:
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          aws-region: ap-northeast-1
      - name: Amazon ECRにログイン
        id: login-ecr
        uses: aws-actions/amazon-ecr-login@v2
      - name: Dockerイメージをビルドしてプッシュ
        run: |
          docker build -t $ECR_REGISTRY/my-app:${{ github.sha }} .
          docker push $ECR_REGISTRY/my-app:${{ github.sha }}
      - name: Amazon ECSサービスにデプロイ
        uses: aws-actions/amazon-ecs-deploy-task-definition@v1

GitHub Actionsのコスト最適化

  • キャッシュの活用:actions/cacheでnode_modules・pip・Dockerレイヤーをキャッシュ
  • 並列実行の活用:独立したジョブを並列実行してパイプライン時間を短縮
  • セルフホストランナー:大量のビルドにはセルフホストランナーでコスト削減
  • 条件付き実行:if条件で不要なジョブをスキップ

まとめ

GitHub ActionsはCI/CDの自動化に欠かせないツールです。本記事で解説したNode.js・Python・Docker・AWSへのデプロイパターンを活用することで、開発サイクルを大幅に効率化できます。まずはシンプルなテスト自動化から始め、段階的にデプロイパイプラインを構築していくのがおすすめです。

投稿者 kasata

IT企業でエンジニアとして勤務後、テクノロジー情報メディア「Tech Athletes(テック・アスリート)」を運営。プログラミング、クラウドインフラ(AWS/GCP/Azure)、AI活用、Webサービス開発を専門とする。エンジニア・ビジネスパーソン向けに、実際に使ってみた経験をもとに信頼できる技術情報を発信中。資格:AWS認定ソリューションアーキテクト、Python 3 エンジニア認定試験合格。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Click to listen highlighted text!