GitHub Actions実践ハンズオン

#プログラミング言語・ツール

GitHub Actions実践ハンズオン CI/CDの基本概念からパイプライン構築まで

コードを送るだけで、テストからデプロイまで全自動。

Overview

研修概要

「コードは書けるけれど、インフラやデプロイは自信がない」——そんな課題を抱えるエンジニアのために設計されたのが本研修です。GitHubに完全統合されたCI/CDツール「GitHub Actions」を使い、「パイプライン構築力」と「セキュアな運用設計力」を実務レベルで習得させます。C# / Java / TypeScriptの中から現場の言語を選択し、AWSまたはAzureのクラウド環境で受講できます。

CI(継続的インテグレーション)による自動テスト・静的解析の構築から、CD(継続的デプロイ)によるクラウドへの本番デプロイ完遂まで一気通貫で提供することで、リリース作業の属人化を解消し、常にリリース可能な開発体制を確立させます。

Issues

こんな課題を持つ企業におすすめ

開発現場

  • AWS・Azureの導入・拡大フェーズにあり、クラウドインフラを自社で設計・運用できるエンジニアを育成したい。
  • クライアントのクラウド移行案件が増えているが、インフラからデプロイまで一気通貫で対応できるエンジニアが社内に不足している。
  • 開発速度を上げるためにCI/CDを整備したいが、パイプライン構築を担える人材がチームにいないため手動デプロイが常態化している。
  • 既存システムのクラウド移行と合わせて、外部ベンダー依存から脱却し内製開発体制を強化したい。
Goals

本研修の到達目標

For Engineers

開発現場

  • 1CIの自律的構築静的解析・単体テスト・ビルドを含む一連のCIパイプラインを独力で構築・運用し、コードの健全性を自動検証できる状態を目指します。
  • 2CDの完遂能力クラウド環境へのプロビジョニング・成果物転送・プロセスの常駐化を自動化し、「常にリリース可能な状態」を維持する能力を習得できるようになります。
  • 3セキュアな運用設計Secrets管理や環境変数の動的生成、リバースプロキシ構成など、本番運用に耐えうるセキュアなアーキテクチャをワークフロー内で実現します。
Features

本研修の特長

Feature 01

言語選択の自由度と即戦力のスキル

C# / Java / TypeScriptの中から現場の開発言語を選んで受講できます。研修で構築するパイプラインをそのまま自社のプロジェクトに持ち帰れるため、学んだスキルが即日の現場適用につながります。

Feature 02

CIからCDまで本番デプロイを完遂

テスト自動化(CI)止まりの研修が多い中、本研修はAWS・Azure両対応のクラウドへの本番デプロイ(CD)まで一気通貫でハンズオン構築します。「リリース自動化」の全工程を手を動かして体得できます。

Feature 03

本番運用を見据えたセキュリティ設計

Secretsによる機密情報管理、環境変数の動的生成、リバースプロキシ構成まで含めたセキュアなワークフロー設計を実践します。「動くだけ」のパイプラインではなく、本番環境に耐えうる設計力を身につけます。

Curriculum

研修カリキュラム

期間:2日間 / 使用言語:C# / Java / TypeScript(いずれかを選択) / クラウド:AWS または Azure(いずれかを選択)

日程章・学習テーマ学習内容・習得スキル
1日目 第1章:CI/CDとGitHub Actionsの概要

CI/CDの基本概念(継続的インテグレーション・継続的デリバリー)とそのメリットを学びます。GitHub Actionsの特徴と、Workflow・Event・Runner・Job・Step・Actionの6つの基本用語と階層構造を理解します。

第2章:ワークフローの基本構造

ワークフローファイルの配置場所(.github/workflows/)とYAML記法の基礎を学びます。5つの必須キーワード(name・on・jobs・runs-on・steps)の記述方法、push/手動/スケジュールによるトリガーの設定、実行履歴の確認と再実行の操作を実践します。

第3章:ワークフローの制御と環境設定

needsキーワードを使ったジョブの並列・直列実行の制御、actions/checkoutによるソースコード取得、多彩なトリガー(pull_request・schedule・workflow_dispatch等)とブランチ・パス指定によるフィルタリングを学びます。GitHubホスト型・セルフホスト型Runnerの違い、環境変数(env)とシークレット(secrets)による安全な設定管理を実践します。

第4章:CI(継続的インテグレーション)の概要

CIの目的(コード変更のたびにビルドとテストを自動実行し、バグを早期発見する仕組み)とメリットを理解します。ビルド・テスト・静的解析(Lint)の3本柱と、プルリクエストとCIを連携させてマージ前の品質を自動担保する仕組みを学びます。

第5章:C#アプリケーションのCI実践

ASP.NET Coreアプリを対象に、actions/setup-dotnetによる.NET SDK環境構築とdotnet buildによるビルドを自動化します。dotnet testによる単体テスト・結合テストの自動化、dotnet formatによる静的解析(フォーマット検証)、TestcontainersとDockerを使ったデータベース連動テストを段階的に構築します。

2日目 第8章:CDの概要とクラウドインフラ構築

CD(継続的デリバリー)の概念とBlue/Greenデプロイメントなどのデプロイ戦略を学びます。AWSとAzureの用語対照(VPC/VNet・EC2/VM・RDS/Azure Database等)、セキュアなネットワーク設計を理解します。受講パターンに応じてAWS/Azureのインフラ環境を構築し、SSH・DB接続の疎通確認とGitHub Secretsへの認証情報登録を実践します。

第9章:C#アプリケーションのCDとワークフロー構築

dotnet publishによるLinux向け配布パッケージ(FDD/SCD)の生成、appleboy/ssh-actionを使った運用環境への接続と疎通確認、ASP.NET Coreランタイムの自動プロビジョニングを実装します。appleboy/scp-actionによるアーティファクト転送、SQLスクリプトによるデータベース初期化、Nginxリバースプロキシ設定、systemdによるアプリケーションのサービス化(常駐化)とSecretを使ったDB接続情報の環境変数注入を構築します。

第12章:クラウドリソースのクリーニング

演習で作成したクラウドリソースを依存関係の順序に従って安全に削除します。AWSはEC2・RDS・VPC等、AzureはVM・Azure Database・VNet等の削除手順を実践し、不要なコストが発生しない運用管理の基本を学びます。

※ 第5・9章はC#(ASP.NET Core)受講者が対象です。クラウド環境はAWS・Azureのいずれかを選択します。

日程章・学習テーマ学習内容・習得スキル
1日目 第1章:CI/CDとGitHub Actionsの概要

CI/CDの基本概念(継続的インテグレーション・継続的デリバリー)とそのメリットを学びます。GitHub Actionsの特徴と、Workflow・Event・Runner・Job・Step・Actionの6つの基本用語と階層構造を理解します。

第2章:ワークフローの基本構造

ワークフローファイルの配置場所(.github/workflows/)とYAML記法の基礎を学びます。5つの必須キーワード(name・on・jobs・runs-on・steps)の記述方法、push/手動/スケジュールによるトリガーの設定、実行履歴の確認と再実行の操作を実践します。

第3章:ワークフローの制御と環境設定

needsキーワードを使ったジョブの並列・直列実行の制御、actions/checkoutによるソースコード取得、多彩なトリガー(pull_request・schedule・workflow_dispatch等)とブランチ・パス指定によるフィルタリングを学びます。GitHubホスト型・セルフホスト型Runnerの違い、環境変数(env)とシークレット(secrets)による安全な設定管理を実践します。

第4章:CI(継続的インテグレーション)の概要

CIの目的(コード変更のたびにビルドとテストを自動実行し、バグを早期発見する仕組み)とメリットを理解します。ビルド・テスト・静的解析(Lint)の3本柱と、プルリクエストとCIを連携させてマージ前の品質を自動担保する仕組みを学びます。

第6章:JavaアプリケーションのCI実践

Spring Boot×Gradleプロジェクトを対象に、actions/setup-javaとGradle Wrapper(./gradlew)を用いた再現性の高いビルド環境を構築します。JUnit 5による単体テスト、MockMvcを活用したWeb層の結合テスト、Spotlessによるコードフォーマット検証、TestcontainersとPostgreSQLを使ったDBアクセス層のテストを自動化します。

2日目 第8章:CDの概要とクラウドインフラ構築

CD(継続的デリバリー)の概念とBlue/Greenデプロイメントなどのデプロイ戦略を学びます。AWSとAzureの用語対照(VPC/VNet・EC2/VM・RDS/Azure Database等)、セキュアなネットワーク設計を理解します。受講パターンに応じてAWS/Azureのインフラ環境を構築し、SSH・DB接続の疎通確認とGitHub Secretsへの認証情報登録を実践します。

第10章:JavaアプリケーションのCDとワークフロー構築

GradleによるExecutable JAR(Fat JAR)の生成とパッケージング、appleboy/ssh-actionを使った運用環境への接続と疎通確認、OpenJDK 21の自動プロビジョニング(冪等性の確保)を実装します。appleboy/scp-actionによるJARファイル転送、SQLスクリプトによるデータベース初期化、Nginxリバースプロキシ設定、systemdによるアプリケーションのサービス化とSpring Boot環境変数オーバーライドによるセキュアな接続管理を構築します。

第12章:クラウドリソースのクリーニング

演習で作成したクラウドリソースを依存関係の順序に従って安全に削除します。AWSはEC2・RDS・VPC等、AzureはVM・Azure Database・VNet等の削除手順を実践し、不要なコストが発生しない運用管理の基本を学びます。

※ 第6・10章はJava(Spring Boot)受講者が対象です。クラウド環境はAWS・Azureのいずれかを選択します。

日程章・学習テーマ学習内容・習得スキル
1日目 第1章:CI/CDとGitHub Actionsの概要

CI/CDの基本概念(継続的インテグレーション・継続的デリバリー)とそのメリットを学びます。GitHub Actionsの特徴と、Workflow・Event・Runner・Job・Step・Actionの6つの基本用語と階層構造を理解します。

第2章:ワークフローの基本構造

ワークフローファイルの配置場所(.github/workflows/)とYAML記法の基礎を学びます。5つの必須キーワード(name・on・jobs・runs-on・steps)の記述方法、push/手動/スケジュールによるトリガーの設定、実行履歴の確認と再実行の操作を実践します。

第3章:ワークフローの制御と環境設定

needsキーワードを使ったジョブの並列・直列実行の制御、actions/checkoutによるソースコード取得、多彩なトリガー(pull_request・schedule・workflow_dispatch等)とブランチ・パス指定によるフィルタリングを学びます。GitHubホスト型・セルフホスト型Runnerの違い、環境変数(env)とシークレット(secrets)による安全な設定管理を実践します。

第4章:CI(継続的インテグレーション)の概要

CIの目的(コード変更のたびにビルドとテストを自動実行し、バグを早期発見する仕組み)とメリットを理解します。ビルド・テスト・静的解析(Lint)の3本柱と、プルリクエストとCIを連携させてマージ前の品質を自動担保する仕組みを学びます。

第7章:Next.js(TypeScript)アプリケーションのCI実践

Next.jsプロジェクトを対象に、actions/setup-nodeとキャッシュ(cache: ‘npm’)によるパッケージインストールの高速化を実装します。ESLint・Prettier・TypeScript型チェック(tsc –noEmit)による静的解析、Vitest+React Testing Libraryによるコンポーネントテスト、PlaywrightによるE2Eテストの自動化、MSW(Mock Service Worker)を使ったバックエンドAPI連携テストを構築します。

2日目 第8章:CDの概要とクラウドインフラ構築

CD(継続的デリバリー)の概念とBlue/Greenデプロイメントなどのデプロイ戦略を学びます。AWSとAzureの用語対照(VPC/VNet・EC2/VM・RDS/Azure Database等)、セキュアなネットワーク設計を理解します。受講パターンに応じてAWS/Azureのインフラ環境を構築し、SSH・DB接続の疎通確認とGitHub Secretsへの認証情報登録を実践します。

第11章:TypeScriptアプリケーションのCDとワークフロー構築

Next.jsのoutput: ‘standalone’設定による最小フットプリントの配布パッケージ生成、appleboy/ssh-actionによる疎通確認、Node.js(LTS)とPM2の自動プロビジョニングを実装します。Standaloneディレクトリと静的アセット(public・.next/static)のSCP転送、NEXTAUTH_SECRET・NEXTAUTH_URL・API_BASE_URLの.env動的生成、PM2によるZero Downtime Reload(無停止再起動)とNginxリバースプロキシを構築します。

第12章:クラウドリソースのクリーニング

演習で作成したクラウドリソースを依存関係の順序に従って安全に削除します。AWSはEC2・RDS・VPC等、AzureはVM・Azure Database・VNet等の削除手順を実践し、不要なコストが発生しない運用管理の基本を学びます。

※ 第7・11章はTypeScript(Next.js)受講者が対象です。クラウド環境はAWS・Azureのいずれかを選択します。

研修内容のカスタマイズについて 本研修で使用するクラウド環境(AWS / Azure)および開発言語(C# / Java / TypeScript)については、御社の実際の開発環境やプロジェクトの技術スタックに合わせてカスタマイズした内容での実施も可能です。ぜひお気軽にご相談ください。
Environment

必要な受講環境と前提知識

受講環境

本研修のハンズオン演習には、以下の環境が必要です。受講前に各ソフトウェアのインストールと動作確認をお願いします。

利用するクラウド環境(受講パターンに応じていずれか一方を使用します)

  • AWS AWSマネジメントコンソール/東京リージョン(ap-northeast-1)/受講者ごとに用意されたAWSアカウント
  • Azure Azureポータル/東日本リージョン(Japan East)/受講者ごとに用意されたAzureサブスクリプション

アプリケーション開発環境

ホストOSWindows 11
IDEVisual Studio Code
ターミナルWindows Terminal / PowerShell
OS(仮想サーバー)Ubuntu 24.04(EC2 / VM)
RDBMSPostgreSQL 17(RDS / Azure Database)
SQLツールpgAdmin 4
JavaJDK 21 / Spring Boot 4
C#.NET SDK 8 / ASP.NET Core 8
TypeScriptNode.js 22 / TypeScript 5

※ Java / C# / TypeScript は受講パターンに応じていずれか一つを使用します。

前提知識

  • プログラミングの基礎知識:受講パターンに応じて、C#(ASP.NET Core)・Java(Spring Boot)・TypeScript(Node.js)のいずれかを用いた基本的なWebアプリケーションの作成・実行経験があること。
  • 基本的なPC・OS操作:Windows Terminal / PowerShellを用いた基本的なコマンド操作とファイル編集ができること。Linux(Ubuntu)環境での初歩的なコマンド入力に抵抗がないこと。
  • Gitの基礎知識:GitHubを使ったリポジトリの作成・clone・push など基本的な操作ができること。
Contact

お問い合わせ

本研修に関するご質問・お申し込みは、以下のフォームよりお問い合わせください。
担当者より2営業日以内にご連絡いたします。