iRICソフトウェア version4にオリジナルソルバーを同梱・配布する　ーソルバ開発環境設定ー

# 概要

iRIC version4からソルバーをgithub上で管理する方式を採用しました。そのおかげで、ソルバー開発者はgithub上のリポジトリを更新するだけで、iRICソフトウェアに同梱・配布されるソルバーを更新することができるようになりました。

本記事は、[「オリジナルソルバーをiRICソフトウェアに同梱・配布する　ーGitHubの利用環境設定ー」](https://qiita.com/Kazutake/items/129972790c4d7bea1055)の続きです。GitHubの利用環境設定がまだの方は上記記事をGitHubの利用環境を設定してから本記事を読んでください。

ここでは以下について紹介します。

１．ソルバーテンプレートを入手する
２．ソルバーテンプレートのフォルダ・ファイルをGitHubリポジトリ追加する
３．Git Actionの確認
４．ソルバーの更新作業：「クローン→変更→コミット→プッシュ」

# ０．全体イメージ
これから説明する全体イメージは以下のとおりです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/84ebeae3-e731-d139-6fbb-da95280144e2.png)



# １．ソルバーテンプレートを入手する
以下からテンプレートをダウンロードし、解凍してください。

https://github.com/kazutake/iric-v4_solver/archive/refs/heads/master.zip

解凍されたフォルダは以下のようになっています。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/e967613e-3bea-b670-6309-832c51b98b81.png#center" width="75%">

フォルダやファイルの詳細はGitHubのリポジトリに記載されています。

https://github.com/kazutake/iric-v4_solver

# ２．ソルバーテンプレートのフォルダ・ファイルをGitHubリポジトリ追加する（追加→コミット→プッシュ）

## （１）クローンフォルダにコピー
ソルバーテンプレートフォルダに格納されているファイル、フォルダのうち、"LICENSE" と"README.md"以外のファイルをコピーし、GitHubからクローンしたフォルダに貼り付けます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/1dc1e204-8b47-5be3-16ab-6cb736923e9f.png#center" width="75%">


## （２）フォルダ、ファイルをGit管理対象に追加
１．でテンプレートからクローンフォルダにコピーしたフォルダやファイルは、クローン時に存在していないためGit管理対象外となっています。今後、コピーしたフォルダ、ファイルもGithubの管理対象とするため以下の作業を行います。

（１）で貼り付けたファイル、フォルダが選択されている状態であることを確認し、エクスプローラー上で右クリックメニューから「TortoiseGit>追加」をクリックします。


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/44c9ff7a-7dca-5c97-d9e0-e4d6098fed75.png#center" width="75%">

※「無視ファイルを含める」にチェックを入れないと"lib/iriclib.lib"が追加されません。ご注意ください。

[OK]ボタンをクリックします。これで指定されたフォルダ、ファイルがGit管理対象候補になりました。まだ確定ではありません。

## （３）コミット
フォルダやファイルの追加操作を行うと、以下の画面が表示されますので、[コミット]ボタンをクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/100ec4d1-f48f-cd1b-3dbb-4e888df1b68f.png#center" width="75%">

メッセージに「テンプレートフォルダ、ファイルを追加」などわかりやすいメッセージを記入し、[コミット]ボタンをクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/92fd5c60-8911-bdec-a3c0-5e5b1c7f9ace.png#center" width="75%">

以下の画面が表示されれば、コミットは完了です。この場合、フォルダ、ファイルの追加がデータベースに登録されます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/710d6703-7f88-e47c-41d8-67015bdd0c3a.png#center" width="75%">


## （４）プッシュ
「コミット」では、自分のPCにクローンしたGit管理のデータベースが更新されます。しかしながら、GitHub上（Web上）のGit管理データベースは更新されていません。

そのため以下の画面の[プッシュ]をクリックして、GitHub上の管理データベースの更新を行います。以下の画面が表示されますので、[OK]ボタンをクリックしてください。


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/4de216d6-c212-ea11-f0b8-1418b42df225.png#center" width="75%">

以下の画面が表示されれば、GitHub上のGit管理データベースが更新されたことになります。[閉じる]をクリックして画面を閉じてください。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/719e97e8-809e-b30e-0fcf-a37a5684d109.png#center" width="75%">


# ３．Git Actionの確認
プッシュすることでGitHub上の管理データベースが更新されます。管理データベースが更新されると、自動的に更新情報をiRICソフトウェアのインストーラに反映する処理が開始されます。

リポジトリの"Actions"をクリックします。以下のような画面が表示されるはずです。赤バツマークが表示されている場合、更新処理に何らかのエラーが生じていることになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/2ba0eaeb-4c80-14e6-e518-86b588881389.png)

いろいろ書かれていますが、「github_tokenがないよ」と言っています。

```
Missing input "github_token: ${{ secrets.GITHUB_TOKEN }}".
```

これはソルバリポジトリからiRICソフトウェアのインストーラーが格納されているリポジトリへアクセスするときの認証に利用されます。それが設定されていないため、エラーになっています。エラーを解消するためには、"github_token"なるものをリポジトリに登録する必要があります。


"リポジトリ>Settings"を開き、左メニューから"Secrets>Actions"を選択します。右上の[New repository secret]をクリックすと以下の画面が表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/9bc5dd15-31db-a766-355d-8b2bd16d1a4c.png)

Name    ONLINE_UPDATE_TOKEN
Value   iRICソフトウェアの管理者にご確認ください。

上記を登録して、"Add secret"をクリックすれば完了です。
再度、自身のPCのファイルを変更し、コミット→　プッシュして、GitActionの確認を行ってください。緑チェックマークが表示されればGitActionは正常に完了しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/8df82bea-3a2c-cb2f-b2f5-36193966b805.png)


以上で更新作業に係るソルバー開発環境設定は完了です。ちなみに環境設定は一度行うだけで済ますので、次回以降は「クローン→変更→コミット→プッシュ」で更新するだけになります。

# ４．ソルバーの更新作業：「クローン→変更→コミット→プッシュ」

更新時のイメージは以下のとおりです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90108/75a071dd-72a8-a1df-461a-a52dcd9d57ad.png)