【入門編】CI/CDパイプラインを支えるGitフロー:GitHub ActionsとCLIの最強連携術 – バージョン管理・CI/CD活用バイブル

こんにちは!現場で日々コードを書き、パイプラインを極限まで磨き込んでいる先輩エンジニアです。

開発を始めたばかりのころ、「ローカルで動いたから大丈夫!」と思ってコードをマージ(統合)したら、本番環境やチームメンバーの環境を壊してしまった……なんて経験はありませんか?あるいは、コードを変更するたびに手動でテストコマンドを実行する作業に、不毛さを感じていませんか?

大丈夫、今日でその悩みとは永遠にお別れです。

この記事では、バージョン管理の標準ツールであるGit (CLI)と、GitHubが提供する最強の自動化プラットフォームGitHub Actionsを連携させ、現代のエンジニアリングにおける必須スキル「CI/CDパイプライン」をゼロから構築します。

これを一度マスターしてしまえば、あなたのコードは「Push(送信)した瞬間、裏で全自動でテストされ、品質が保証される」ようになります。毎日の開発が劇的に楽になり、自信を持ってコードを書けるようになりますよ!

—

1. なぜ「Git CLI × GitHub Actions」なのか?

具体的な操作に入る前に、まずは全体像と「なぜこの組み合わせが最強なのか」という本質を押さえておきましょう。

役割分担:頭脳と筋肉

  • Git (CLI) = 変更履歴を記録し、並行開発を安全に行うための「頭脳(管理システム)」
  • GitHub Actions = Pushなどのイベントを検知して、クラウド上でテストやビルドを代行する「筋肉(自動化ロボット)」

この2つを繋ぐのが「ブランチ戦略(開発のルール)」です。

最もシンプルで美しい「GitHub Flow」

本記事では、現代のWeb開発で最も広く使われているGitHub Flowというブランチ戦略を採用します。ルールは驚くほどシンプルです。

[ main ブランチ ] (常に動く綺麗な状態を維持)
│
├─► [ feature/xxx ブランチ ] (ここで作業&Git Push)
│ │
│ ▼ (GitHub Actionsが自動でテスト実行!✅)
│ │
└◄─────────┴─► [ Pull Request を作成して main へマージ ]

1. 機能開発やバグ修正は、必ず`main`から分やした専用ブランチ(`feature/xxx`など)で行う。
2. 変更をGitHubへ`push`する。
3. 【自動化】 GitHub Actionsが起動し、コードが壊れていないか全自動でテストする。
4. テストが成功(Pass)したら、安心して`main`ブランチへ統合(Merge)する。

手動でのテスト忘れを防ぎ、「機械にできることは機械にやらせる」。これがCI(Continuous Integration: 継続的インテグレーション)の本質です。

—

2. 環境構築とセットアップ

それでは、手元で実際に手を動かしていきましょう!まずは必要な環境を整えます。

ステップ1: Git CLIの動作確認

ターミナル(MacならTerminal、WindowsならGit BashやPowerShell)を開き、以下のコマンドを実行してください。

Gitがインストールされているか確認
git –version

バージョンが表示されればOKです。もし入っていない場合は、[Git公式サイト](https://git-scm.com/)からダウンロードしてインストールしてください。

次に、あなたの開発者情報をGitに教えます(未設定の場合のみ)。

ユーザー名とメールアドレスの設定(GitHubに登録している情報を推奨)
git config –global user.name “Your Name”
git config –global user.email “your-email@example.com”

—

3. GitHubワークフロー(CI)の作成

ここからが本番です。GitHub Actionsに「どんな条件で、何を自動実行させるか」を伝える設定ファイル(ワークフローファイル)を作成します。

ステップ2: ローカルリポジトリの作成

適当な作業用フォルダを作成し、Gitリポジトリとして初期化します。

フォルダを作成して移動
mkdir my-cicd-app
cd my-cicd-app

Gitリポジトリとして初期化
git init

デフォルトブランチ名を main に設定
git branch -M main

ステップ3: ワークフロー定義ファイル(YAML)の作成

GitHub Actionsの設定は、`.github/workflows` というディレクトリの中に YAML(ヤムル)形式のファイルとして配置する決まりになっています。

以下のコマンドでディレクトリを作成しましょう。

mkdir -p .github/workflows

次に、`.github/workflows/ci.yml` というファイルを作成し、以下のコードをそのまま貼り付けてください。コメントを深く読んでみてください。プロが現場で使う設定の「なぜ」が詰まっています。

ワークフローの名称(GitHub上の画面に表示されます)
name: Standard CI Pipeline

【トリガー設定】いつこの自動化を発動させるか?
on:
push:
branches: [ “main”, “feature/” ] # mainまたはfeature/から始まるブランチへのPushで発動
pull_request:
branches: [ “main” ] # mainへ向けたPull Requestが作成・更新された時に発動

【ジョブ設定】実行したい作業の定義
jobs:
test-job:
# 実行環境として「最新のUbuntu(Linux)」の仮想マシンをクラウド上に用意
runs-on: ubuntu-latest

steps:
# Step 1: リポジトリのコードを仮想マシン上にダウンロード(チェックアウト)

  • name: Checkout repository code

uses: actions/checkout@v4

# Step 2: テストの実行(ここでは動作確認用のシンプルなシェルコマンド)

  • name: Run automated test

run: |
echo “==== 自動テストを開始します ====”
# ここに実際のテストコマンド(npm test や pytest など)が入ります
# 今回は環境チェックとサンプル判定を行います
python3 –version
echo “テスト成功: すべてのコード検証をパスしました!”

—

4. 精度100%の「Hello World」自動化テスト

設定が完了しました!
それでは、CLIからGit操作を行い、「Pushしたらクラウド上で自動テストが走る感動の瞬間」を体験しましょう。

ステップ4: GitHub上にリモートリポジトリを作成

1. ブラウザで [GitHub](https://github.com) にログインします。
2. 右上の「+」アイコンから 「New repository」 を選択します。
3. Repository nameに `my-cicd-app` と入力し、他の設定はデフォルトのまま 「Create repository」 をクリックします。

画面に表示された「…or push an existing repository from the command line」のコマンドをコピーし、ローカルのターミナルで実行します。

ローカルの変更をすべて追加してコミット
git add .
git commit -m “feat: add GitHub Actions CI workflow”

リモートリポジトリ(GitHub)のURLを登録(URLはご自身のものに置き換えてください)
git remote add origin https://github.com/<あなたのユーザー名>/my-cicd-app.git

変更をGitHubのmainブランチへ送信
git push -u origin main

ステップ5: 開発ブランチを切ってPushする(現場のリアルな流れ)

次に、新しい機能を開発する想定で `feature/test-ci` ブランチを作って作業してみます。

feature/test-ci ブランチを作成して切り替え
git checkout -b feature/test-ci

簡単なテスト対象となるコードを作成してみましょう。

サンプルコードの作成
echo “print(‘Hello, CI/CD World!’)” > app.py

この変更をコミットし、GitHubへPushします!

変更の追跡とコミット
git add app.py
git commit -m “feat: add app.py”

新規ブランチをリモートへPush
git push -u origin feature/test-ci

ステップ6: GitHub上で自動テストの成功を確認する!

Pushが完了したら、すぐにブラウザでGitHubのリポジトリページを開いてください。

1. リポジトリのヘッダーにある 「Actions」 タブをクリックします。
2. 今Pushしたコミットメッセージ(`feat: add app.py`)のワークフローが黄色のアイコン(実行中)で動いているはずです。
3. 数秒待つと……緑色のチェックマーク(Pass)に変わります!

![Actions Pass](https://docs.github.com/assets/cb-25535/images/help/repository/actions-tab.png) (イメージ)

緑色のチェックマークをクリックして詳細ログを開いてみてください。
先ほど `ci.yml` に書いた `Run automated test` の部分が実行され、`テスト成功: すべてのコード検証をパスしました!` と出力されているはずです。

これが、あなたの手によって構築された初めてのCI/CDパイプラインです!

—

5. 現場で震えるほど役立つ!先輩エンジニアからのプロの知見

最後に、これからプロを目指すあなたに、現場で絶対に役に立つ3つの鉄則をお伝えしておきます。

1. 「Fail Fast(早く失敗させる)」の精神

CIの目的は「100%成功させること」ではなく、「バグを統合前に最速で見つけること」です。
テストが失敗(赤色のバツ印)しても落胆しないでください。「本番環境やチームメンバーのコードを壊す前に、ロボットが気づかせてくれた!ラッキー!」と考えましょう。

2. コミットは小さく、Pushは頻繁に

1週間分の大きな変更をまとめて1回Pushすると、CIが失敗した時に原因の特定が困難になります。
「1機能できたらPush」「バグを1つ直したらPush」という小さなサイクル(Small Commits & Early Push)を意識してください。

3. mainブランチの保護(Branch Protection)

チーム開発では、GitHubの `Settings` > `Branches` から Branch protection rules を設定し、「CIのテスト(緑マーク)が通っていないコードはmainにマージできない」ようにロックをかけます。これにより、ヒューマンエラーによるシステム破損を100%防ぐことができます。

—

まとめ

今回学んだことを振り返ってみましょう。

1. Git CLI でコードの変更履歴を安全にブランチ管理する。
2. `feature/` ブランチで作業し、GitHubへ `git push` する。
3. GitHub Actions が裏で自動起動し、コードの品質を爆速でチェックしてくれる。

これであなたは、「手動テストの恐怖」から解放され、本来集中すべき「価値あるコードを書くこと」に専念できる環境を手に入れました。

この小さな一歩は、将来あなたが大規模なシステムを構築し、何十人ものチームをリードするようになっても変わらない「モダン開発の確固たる原点」になります。

ぜひ、自分の個人プロジェクトや仕事のコードにもこの設定を取り入れてみてください。毎日の開発が、驚くほど軽やかで楽しいものになりますよ!応援しています!

タイトルとURLをコピーしました