GitHubのリリース機能を使用してプログラムの公開&バージョン管理を行う

GitHubにはリリースという、自分が作成したプログラムなどを各リリース(バージョン)毎パッケージ化して、公開する機能があります。 また、パッケージを公開しなくてもリリースノートとして使用したりとバージョンの管理がより分かりやすくなります。

こちらは私が管理をお手伝いしているiRICのNays3Dvというソルバーのリポジトリです。 ここではソルバーのバージョンアップの度にリリースを作成し、どのような変更をしたかのコメントを残し、そのバージョンのプログラム一式をzipにまとめたものをDL出来るようにしています。

https://github.com/iRICsolvers/v4_nays3dv/releases

../../_images/02028.png

手順

リリースを作成する際にはGitのタグが必要となります。

そのため、全体の手順としては以下のようになります。

  • リリースを作成したい時点のコミットにタグを作成

  • タグに対してGitHubでリリースを作成

はじめに

お手頃なリポジトリをご用意ください。

私は中身はダミーデータですが、以下のようなコミットログのあるリポジトリを用意しました。 mainにマージしているコミットがバージョンアップのタイミングのイメージです。

../../_images/03027.png

タグを作成

リリースを作成するために、リリースを作成したい時点のコミットにタグを作成します。
主にバージョンアップのタイミングでリリースを作成することがメインだと思います。
タグ作成は今回は視覚的に操作ができて簡単なSource Treeを使用します。

対象のローカルリポジトリをSource Treeで開く

リリースを作成したいプロジェクトを管理しているローカルリポジトリをSource Treeで開いてください。
../../_images/04022.png

コミットにタグを作成する

タグを作成したいコミットを右クリックして、タグ... を選択し、タグ作成ダイアログを開きます。

タグ名 にタグの名前を記入します。名前は分かりやすくリリース時のバージョン番号などをつけるとよいかと思います。

../../_images/05020.png

名前を入力したら タグを追加 をクリックしてタグを追加します。

タグが追加されるとコミットログにもタグが表示されています。

../../_images/06019.png

この手順を繰り返してリリースを作成したいコミット全てにタグをつけましょう。

../../_images/07020.png

タグを作成したらリモートリポジトリにタグをプッシュします。
プッシュ アイコンをクリックしてプッシュダイアログを開いたら左下の 全てのタグをプッシュ にチェックが入っていることを確認してから プッシュ をクリックして実行します。
../../_images/08018.png

リモートリポジトリにタグがプッシュされると、GitHubのリポジトリのページから作成されたタグを確認することができます。

../../_images/0901.gif

リリースを作成

タグの準備ができたら、タグに対してリリースを作成していきます。
まずはGitHubのリポジトリのページにアクセスして、 Release のリンクを開きます。
../../_images/10011.png

リリースが1つもない場合、以下のような画面が表示されます。 Create a new release をクリックしてリリースの編集画面に移動してください。
../../_images/1108.png

既にリリースがある場合

既にリリースがある場合には以下のようにリリースの一覧が表示されるので :Draft a new release をクリックします。

../../_images/1208.png

リリースの編集画面が表示されるので、内容を入力して Publish release でリリースを作成します。 リリース画面の詳細は リリース編集画面の説明 を読んでください。

../../_images/1308.png

リリースが作成されました。 同様の手順を繰り返してリリースを作成してください。

../../_images/1406.png

リリース編集画面の説明

../../_images/1506.png

Choose a tag

../../_images/1605.png
プルダウンでリリースを作成するタグを選択します。
テキストボックスに入力してタグを検索することもできます。
../../_images/1705.png

また、直近数件のコミットに対してであれば、ここから新たなタグを作成することも可能です。
テキストボックスに作成したいタグの名前を入力して + Create new tag: 〇〇 on publish をクリックします。
../../_images/1805.png

Target

../../_images/1903.png
Choose a tag で新しくタグを作成する場合に、タグをつけるコミットを選択する項目です。
ブランチか直近のコミットから選択することが可能です。

ブランチの場合はブランチの指しているコミットにタグを作成します。

../../_images/2002.png

直近のコミットタブでは直近のコミット10件程度の中からコミットを選択可能です。それより前のコミットは選択できません。

../../_images/2102.png

Previous tag

../../_images/2202.png
Choose a tag でタグを選択または作成をすると表示される項目です。 Generate release note の機能で自動でリリースノートを作成したい場合に選択します。
選択したタグより前のバージョンのタグをここで選択してください。
../../_images/2302.png

Generate release note

../../_images/240.png
クリックすると自動でリリースノートを作成してくれます。 Previous tag で選択したタグから Choose a tag で選択したタグまでの差分でリリースノートが作成されます。
リリースノートの自動作成には .githubrelease.yml の作成とプルリクエストを利用したマージをしておく必要があります。

詳しくは公式ドキュメントをご確認ください。

Release title

../../_images/2501.png

リリースのタイトルを入力します。

Describe this release

../../_images/260.png
リリースの説明文を記入します。 主に前回からどのような変更があったかなどのリリースノートを書くことが多いかと思います。
マークダウン記法を使用した記述可能で写真や動画をドラッグアンドドロップで埋め込むことも可能です。マークダウン記法がよくわからなくてもエディタ上部のアイコンから見出し作成、ボールドなどの編集が行えます。

GitHubで使用できる記法などの詳細は公式ドキュメントをご覧ください。

絵文字も使用できます。

公式ドキュメント

絵文字の使用 :絵文字の使用方法が記載されています。

絵文字チートシート :使用できる絵文字と絵文字の名前が確認できます

外部サイト

Emoji Cheat Sheet :絵文字をクリックするとその絵文字をコピー出来るので便利です

Attach binaries by dropping them here or selecting them

../../_images/270.png
この領域をクリックしてダイアログでファイルを選択するか、この領域にドラッグアンドドロップするかでリリースにファイルを添付できます。
このリリース時点のビルドしたプログラムの一式のzipファイルやインストーラーを添付することでユーザーにプログラムを配布することが可能です。ユーザーには作成したリリースのページのリンクを教えて下さい。
過去バージョンのアーカイブとしても利用できるので非常に便利です。

Set as a pre-release

../../_images/280.png

作成するリリースが正式公開版ではい場合にチェックを入れます。

Set as the latest release

../../_images/290.png

作成するリリースが最新のリリースの場合にチェックを入れます。 チェックを入れない場合GitHub側が自動でリリースの順番を設定します。

Publish release

../../_images/300.png

編集中のリリースを作成します。

Save draft

../../_images/310.png

編集中のリリースを下書きとして保存します。