はじめに

こんにちは!エクネスの24卒入社の新卒エンジニア、藤嶌です!

今回は、タイトルにある通りGitHub Actionsを使って業務効率化を図ってみたいと思います!

GitとGitHubのちがい

Git は「バージョン管理のためのローカルツール」

主な機能として下記になります。

  • git push
  • git pull
  • git commit
  • git tag
  • git branch
  • etc…

GitHub は「Git リポジトリを共有するクラウドサービス」

主な機能として下記になります。

  • リモートリポジトリのホスティング
  • Pull Request(プルリクエスト)
  • Issue(課題管理)
  • GitHub Actions
  • Release(リリース機能)
  • Wiki(ドキュメント管理)
  • etc…

自分が入社したばかりの頃、
「GitHub のコマンドを早く覚えないと!」とか、
「Git を使えばテストや自動デプロイができるんだ!」なんて思っていました。

今思えば、完全に混ざって理解していたんですよね。

今回実装した仕組みは、
Gitのタグ機能でバージョンを切り、そのタグをGitHubにpushしたタイミングで、自動的にGitHub Releaseを作成する
というものです。

なぜタグから自動リリースすると便利なのか?

GitとGitHubの役割が分かったところで、今回の自動化の肝となる

「タグを作ったら自動でリリースを作る」

この仕組みが、なぜ便利なのかを説明していきます。

普段のリリース作業を振り返ると、だいたいこんな流れになると思います。

  1. ローカルでタグを切る
  2. ローカルからタグをリモートにPushする
  3. GitHubを開き、リポジトリを選択
  4. 手動でGitHub Releaseを作成する
  5. テスト環境を開き、Pullしてタグを切り替える

このうち “3〜4” は完全にルーティン作業で、毎回ほぼ同じ操作の繰り返しです。

今回の自動化を導入することで、
タグをpushした瞬間にGitHub Releaseが自動で作成されるようになり、 3〜4 の手間をまるっと削減できます。

結果的に、リリース作業は

「タグを切ってpush するだけ」

という非常にシンプルな流れに変わります。

さらに、将来的には
リリースが作成されたタイミングでテスト環境へ自動デプロイ
といった流れも実現したいと思っています(現在は絶賛苦戦中ですが……)。

このように、まずはリリース自動化を導入して作業を軽くしながら、次のステップとして CI/CD 全体の自動化へつなげていける土台ができました。

実装手順:タグから自動でGitHub Releaseを作るワークフロー

ここからは、実際に今回の仕組みをどのように実装したのかを
手順に沿ってわかりやすく説明していきます。

実装内容としては、

「v形式のタグをpushたら、GitHub Actionsが自動でReleaseを作成する」

というものです。

必要な作業はわずか2ステップです。

STEP 1.GitHub Actions用のYAMLファイルを作成する

リポジトリ内に、次のパスでファイルを作成します。

.github/workflows/create-release-on-tag.yml

中身は以下の通りです。

name: Create Release on Tag

on:
 push:
  tags:
   - 'v*' # v1.0.0, v2.5.7 などのタグが push されたときに発火

permissions:
 contents: write # Release 作成には必須!

jobs:
 create_release:
  runs-on: ubuntu-latest

  steps:
   - name: Checkout
    uses: actions/checkout@v4

   - name: Create GitHub Release
    uses: softprops/action-gh-release@v1
    with:
     generate_release_notes: true # コミット履歴から自動でノートを生成
    env:
     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

このYAMLがやっていること

  • タグ(v*)がpushされたときだけ実行
  • コードをチェックアウト
  • softprops/action-gh-release を使ってGitHub Releaseを自動生成
  • 自動でリリースノートを作成してくれる

このファイルをpushするだけで準備完了です。

STEP 2. タグを作ってpushするだけ!

あとはローカルでタグを切ってpushすれば、
GitHub が勝手にリリースを作ってくれます。

例として、

git tag v1.0.0
git push origin v1.0.0

とすると、

  1. Git がタグをGitHubに送信
  2. GitHub が「タグがpushされた」イベントを検知
  3. GitHub Actionsが自動で起動
  4. Releaseページが自動作成される
  5. 変更履歴(リリースノート)も自動生成される

という流れになります。

まとめ

今回は、Git のタグ機能と GitHub Actions を組み合わせて
「タグをpushするだけで自動的に Release を作成する仕組み」を紹介しました。

これまで手動で行っていた、

  • Release ページの作成
  • リリースノートの入力

といった単純作業を、GitHubを開かずにワークフローとして GitHub に任せられるようになります。

結果として、

  • 作業時間の削減
  • チーム全体の開発フロー改善

といった実用的なメリットが得られました。

特に「タグだけでリリースが自動生成される」という体験は、
一度導入すると手放せないほど開発が快適になります。

また、将来的には
「リリース作成をトリガーにテスト環境へ自動デプロイ」
といった本格的な CI/CD に発展させることもできます。

まずは小さな自動化から。
そしてその先には、よりスムーズでミスのないリリースフローがあります。