top of page

gitタグからライブサーバーまで:リリースパイプライン

執筆者の写真: Marcel Dütscher
Marcel Dütscher
7月7日
読了時間: 2分

Blocks Beyond The Stars のリリースは、いまではコマンド1つ、gitタグをプッシュするだけです。そのあとはすべて、機械がやってくれます。この記事では、ぼくたちのCI/CDパイプラインと、趣味のプロジェクトでもその手間が報われる理由を紹介します。


リリースのワークフロー。v0.7.4 のようなタグがプッシュされると、GitHub Actionsが完全なパッケージをビルドします。Windowsのインストーラー(セットアップ、ポータブル、MSI)、Linux版、ブラウザ向けのWebGL版、サーバー用のDockerイメージ。1つのタグから、6つの成果物ができます。バージョン番号はタグそのものから取るので、情報源はひとつだけです。


デプロイのワークフロー。2つめのワークフローが、新しいバージョンをサーバーに届けます。大切にしたのは本番へのゲートです。デプロイは、はっきり承認されてからでないと始まりません。うっかり「あっ、それは本番だった」ということはありません。サーバー自身も、ゲームのバージョンを設定ファイルに固定していて、新しく目を覚ます世界はすべて自動で新バージョンで始まり、すでに動いている世界は中断されません。


学ばなければならなかった教訓:ゲームクライアントの修正は、本物のリリースでしかプレイヤーに届きません。クライアントはVelopackで自分自身を更新するので、ゲームをインストールした人は、ぼくたちが新しいバージョンを公開したときにしか更新を受け取れません。mainブランチにマージしたバグ修正は、タグが続かなければ誰の役にも立ちません。当たり前に聞こえますが、「直した」はずのバグがまだ残っているのはなぜだろう、と首をかしげたことが何度もありました。


ブラウザは?WebGL版はZIPとしてサーバーに置かれ、ディレクトリを入れ替えて有効にします。古いディレクトリは、フォールバックとして残ります。小さな version.txt を見れば、いま何が公開されているかがわかります。


この仕組み全体に、数回の週末がかかりました。そして、リリースのたびにまた元が取れていきます。

最新記事

すべて表示
新しいバージョンが2026.7.19で、0.9.2ではない理由 🗓️

今日アップデートする人は、バージョン0.9.1から2026.7.19にジャンプします。打ち間違いに見えますが、意図した決定です。バージョンの付け方を、「セマンティック」から日付ベースのバージョン(年.月.カウンター)に変えました。その理由をお話しします。 古い方式は、だれも聞かない質問に答えていました。 セマンティックバージョニング(0.9.1、1.2.3…)は、ソフトウェアライブラリの世界から来

 
 
おそうじ完了:GitHubのキャッシュをようやくちゃんと使えるようになりました 🧹

前回の技術記事では、ビルドとチェックのパイプラインに本当は何がかかっているのかを測りました。わかったのは、お金ではなく、待ち時間と保存容量だということでした。その記事は「おそうじの作業は計画してあるけれど、まだ終わっていない」で締めくくっていました。ところが、思ったより早く進みました。今日のお昼の時点で、メインブランチに入っています。数字をご紹介します。 まず結果から。 リポジトリのキャッシュ使用

 
 
月に1000回のビルド実行、そのどれにもお金はかかっていません ⚙️

まず訂正です。この記事の最初のバージョンでは、GitHubのビルド時間を使い切ってしまい、そのせいでProアカウントにアップグレードせざるをえなかった、と書いていました。それは間違いでした。ドキュメントを一目見ればわかったことです。公開リポジトリでは、GitHubのビルド時間は無料です。アーティファクトもキャッシュもです。うちのリポジトリは5月末から公開されているので、1分もお金を払ったことはあり

 
 

コメント


この投稿へのコメントは利用できなくなりました。詳細はサイト所有者にお問い合わせください。
bottom of page