GitHubのリリース機能の使い方

## GitHubのリリース機能とは
簡単に説明するとライブラリやソフトウェアのリリースをGitHub上で管理できる機能です。

### Release作成の流れ

#### 1. GitHubのReleasesリンクをクリック
![github_top.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/3e3aa260-6a64-7f57-fb0d-87bad3f273eb.png)

#### 2. 「Draft a new release」をクリック
![releases.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/2fc4b3c7-ebd1-b616-b29c-a5dd95bd5107.png)


#### 3. Release対象とするタグを選択して各項目を入力し「Publish release」をクリック
![create_new_release_entry.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/275fba5e-ae26-4b04-8960-4d787fe35f02.png)


#### 4. 新しいReleaseが追加されます
![releases_add.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/1d340a09-03df-9019-2fdc-f07f334f8744.png)


## Release作成ページ解説
基本的にはタグの指定さえあれば作成可能です。ちなみにこの画面上からもタグを作成できます。

![create_new_release.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/3edd99fb-0414-a7c1-3d37-dd89e840517f.png)

### Choose a tag
Release作成時のタグを指定します。

新しくタグを作成する場合は「Choose a tag」にタグ名を入力し「Create new tag」を選択。作成元となるブランチorコミットを指定します。

ReleaseをPublishしたタイミングではじめてタグが作成されますが、Save Draft→Publishの場合は、すでにタグが存在すればそれを使用し、なければDraft時に設定したタグが新しく作成されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/49b2a874-2885-3b98-b53d-8de70966140a.png" alt="create_new_tag" title="Create a new Tag" width="60%">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/25595e2b-c878-5ecc-2dbe-08f85caa3336.png" alt="create_new_tag_target" title="Create new Tag from target
" width="60%">

### Generate release notes
「Generate release notes」をクリックするとリリースノートの自動生成ができます。この時にリリースノート内に表示するリリース内容の差分は「Previous tag」から指定できます。

リリースノートの自動生成をやり直したい場合は、Descriptionをクリアすると、再度「Generate release notes」がクリック可能になります

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/b8ca3b55-47be-8d46-0820-748786c0a7b2.png" alt="previous_tag" title="Previous tag" width="60%">

![generate_release_notes_entry.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/631f826f-7214-a720-f70e-aac27abf3343.png)


### pre-release と latest について
pre-releaseのチェックをつけるとpre-releaseラベルをつける事ができます。その名のとおり、リリース前の目印となります

latestのチェックは最新のReleaseに対してLatestのラベルをつける事ができます。LatestがつけられるReleaseはひとつだけです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/69557f34-4bce-50c3-1ec8-14a4ba616554.png" alt="Draft a new Relase" title="Draft a new Relase" width="60%">

### Publish release と Save draft
基本的にPublishをするとReleaseが作成＆公開されますが、公開する前に下書きを作成することも可能です。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/bccae643-e187-bbec-0688-c57ef7103890.png" alt="publish_release_save_draft" title="Publish Release and Draft Release" width="60%">

## release.ymlについて
リリースノートの自動生成ですが `.github/release.yml` を作成しておくと、リリースノート内容に表示するPR一覧を、ラベル別にカテゴリを分けて表示する事ができます。

.github/release.yml
```yml
changelog:
  exclude:
    labels:
      - ignore-for-release
    authors:
      - octocat
  categories:
    - title: Breaking Changes 🛠
      labels:
        - Semver-Major
        - breaking-change
    - title: Exciting New Features 🎉
      labels:
        - Semver-Minor
        - enhancement
    - title: Other Changes
      labels:
        - "*"

```


実際の表示がこちら

![release_yml.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275540/46d2489a-c205-c72b-a6eb-624c59b6af0e.png)

詳しくは公式ドキュメントをチェック！

自動生成リリース ノート - GitHub Docs  
https://docs.github.com/ja/repositories/releasing-projects-on-github/automatically-generated-release-notes


### 最後に

基本的にはGitHubの公式ドキュメントを一読することをオススメします！  

リポジトリのリリースを管理する - GitHub Docs  
https://docs.github.com/ja/repositories/releasing-projects-on-github/managing-releases-in-a-repository


#### 参考リンク
GitHubのリリース機能の使い方  
https://github.com/okdyy75/sample-release

GitHubのリリース機能を使う  
https://qiita.com/todogzm/items/db9f5f2cedf976379f84