エンジニアの世界へようこそ。今日からあなたの開発スタイルは劇的に変わります。
「コードを書いて、テストして、サーバーに送る」。この一連のルーチンワークを、あなたが寝ている間にマシンがすべてやってくれるとしたら? それを実現するのが GitHub Actions です。
単なる「自動化ツール」だと思わないでください。これは、あなたの開発体験を向上させるための「最強の副操縦士」です。今回は、その本質を最短距離でマスターしましょう。
—
1. CI/CD:なぜ「自動化」が必要なのか?
初心者のうちは「手作業」でもなんとかなります。しかし、プロジェクトが大きくなると、以下の苦痛が必ず訪れます。
- 「テストを忘れてバグを本番環境に出してしまった」
- 「デプロイの手順書を読みながら、コマンドを打つのが怖い」
- 「毎回同じ作業をしていて、貴重な集中力が削がれる」
CI(継続的インテグレーション) とは、コードをプッシュするたびに「自動でテスト」し、品質を保証する仕組み。CD(継続的デリバリー) とは、そのテスト済みコードを「自動で本番環境へ届ける」仕組みです。
これをGitHub上で完結させるのが GitHub Actions です。
—
2. GitHub Actions:3つの重要コンセプト
GitHub Actionsを理解するには、以下の3つの概念だけを覚えてください。
1. Event(きっかけ): 「いつ動くか」。例えば `push` された時、`pull request` が作成された時など。
2. Job(仕事の単位): 「どのマシンで、何を並列で行うか」。テスト、ビルド、デプロイなどの塊です。
3. Runner(作業員): 「誰がやるか」。GitHubが用意した仮想マシン(Ubuntuなど)が、あなたの指示通りにコードを実行してくれます。
—
3. さあ、最初の「ワークフロー」を書こう
GitHub Actionsは、リポジトリ内の特別なディレクトリに設定ファイル(YAML形式)を置くだけで動き出します。
手順1: ファイルを作成する
あなたのリポジトリのルートディレクトリに、以下の階層構造でファイルを作成してください。
`.github/workflows/hello-world.yml`
手順2: コードを記述する
このファイルに、以下の内容をコピー&ペーストしてください。
ワークフローの名前
name: My First CI Pipeline
1. Event: どのタイミングで発火するか
on:
push:
branches: [ “main” ] # mainブランチへのプッシュ時に実行
2. Job: 具体的な処理の定義
jobs:
build:
# 3. Runner: どのOSで動かすか(ubuntu-latestが基本)
runs-on: ubuntu-latest
steps:
# ステップ1: リポジトリのコードを仮想マシンにチェックアウト
- name: Checkout code
uses: actions/checkout@v4
# ステップ2: 実際にコマンドを実行
- name: Run a shell command
run: |
echo “世界よ、こんにちは!”
echo “このワークフローはGitHubのサーバー上で自動的に動いています。”
ls -la # リポジトリの中身を確認
—
4. 動作確認:魔法の瞬間
1. 作成した `.github/workflows/hello-world.yml` を `git commit` し、`git push` してください。
2. ブラウザでGitHubのリポジトリを開き、上のメニューにある 「Actions」 タブをクリックしてください。
3. そこには、あなたが書いたワークフローが自動的に走り出し、緑色のチェックマーク(Success)がつく様子が見えるはずです。
これが、「自動化の第一歩」 です。
—
先輩エンジニアからのアドバイス
「GitHub Actionsなんて、ただスクリプトを動かすだけでしょ?」と思ったあなた。実は、それは氷山の一角に過ぎません。
- 秘伝のタレを共有する: GitHub Marketplaceには世界中のエンジニアが作った「部品(Action)」が無数にあります。自分でゼロから書く必要はありません。
- 権限の管理: 本番環境へのデプロイには「Secret(秘密鍵)」機能を使って、安全に認証情報を扱うのが鉄則です。
- 失敗を恐れない: ワークフローが赤く失敗しても落ち込まないでください。それは「バグが本番に出る前に、マシンが見つけてくれた」という最高の結果なのです。
これをマスターすれば、あなたは「コードを書くこと」そのものに全力を注げるようになります。面倒な作業はすべてGitHub Actionsに任せてしまいましょう。
さあ、次はどんな作業を自動化しますか? 準備ができたら、次は「テストの自動実行」に挑戦してみましょう。あなたのエンジニアライフが、今日からもっと自由になることを約束します。