はじめに
こんにちは!エクネスの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の役割が分かったところで、今回の自動化の肝となる
「タグを作ったら自動でリリースを作る」
この仕組みが、なぜ便利なのかを説明していきます。
普段のリリース作業を振り返ると、だいたいこんな流れになると思います。
- ローカルでタグを切る
- ローカルからタグをリモートにPushする
- GitHubを開き、リポジトリを選択
- 手動でGitHub Releaseを作成する
- テスト環境を開き、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
中身は以下の通りです。
この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
とすると、
- Git がタグをGitHubに送信
- GitHub が「タグがpushされた」イベントを検知
- GitHub Actionsが自動で起動
- Releaseページが自動作成される
- 変更履歴(リリースノート)も自動生成される
という流れになります。
まとめ
今回は、Git のタグ機能と GitHub Actions を組み合わせて
「タグをpushするだけで自動的に Release を作成する仕組み」を紹介しました。
これまで手動で行っていた、
- Release ページの作成
- リリースノートの入力
といった単純作業を、GitHubを開かずにワークフローとして GitHub に任せられるようになります。
結果として、
- 作業時間の削減
- チーム全体の開発フロー改善
といった実用的なメリットが得られました。
特に「タグだけでリリースが自動生成される」という体験は、
一度導入すると手放せないほど開発が快適になります。
また、将来的には
「リリース作成をトリガーにテスト環境へ自動デプロイ」
といった本格的な CI/CD に発展させることもできます。
まずは小さな自動化から。
そしてその先には、よりスムーズでミスのないリリースフローがあります。