unkontributors / super_unko

Super Unko project is the one of the awesome, clean and sophisticated OSS projects in the world.
Other
174 stars 21 forks source link

GitHubReleaseの画面からリリースドラフトをPublishするとdeb, rpmファイルがリリースされるCIフローを追加 #64 #78

Closed jiro4989 closed 4 years ago

jiro4989 commented 4 years ago

内容

補足

greymd commented 4 years ago

パッケージの自動リリース、あると便利だと思います! 気になるのは、やはりシェル芸botへの変更の反映をどうするか、ですかねぇ。 シェル芸botは都度 https://git.io/superunko.deb のURLから最新のパッケージをインストールしてくれるので。

都度、下記のURLの内容をPRするのも億劫ですし。。

https://github.com/unkontributors/super_unko/releases/download/<バージョン>/super_unko.deb

git.io のURLの向き先を変えられればいいんですがね、私が知る限りはできなさそうです。 しばらくは手動で pkg/superunko.deb に変更を反映してもいいんですが、今後はどうしたほうが綺麗ですかね。

release.yml に更に pkg/superunko.deb にコミットする処理を追加するか、別途GitHub Actionのcronなりを用意してリリースページのパッケージと pkg/superunko.deb に同期するか、はたまた何か別の方法か。。

jiro4989 commented 4 years ago

release.yml に更に pkg/superunko.deb にコミットする処理を追加する

これが良さそうに感じました。

このあたりのActionsを使えばおそらくできそうです。 https://github.com/ad-m/github-push-action

jiro4989 commented 4 years ago

もしバージョン番号を変更しないまま、debやrpmファイルを上書きすることが許容できるのでしたら、masterの更新時に常に最新版でdebやrpmファイルを上書きするようにもできますが、やりましょうか?

これをすると、リリースタグを作成し忘れても、ソースコードとして管理しているpkg/superunko.debなどは常に最新になります。

greymd commented 4 years ago

もしバージョン番号を変更しないまま、debやrpmファイルを上書きすることが許容できるのでしたら、 masterの更新時に常に最新版でdebやrpmファイルを上書きするようにもできますが、やりましょうか?

ものぐさなので、それできるなら嬉しいです!上書きも許容できます。

ちなみに、deb/rpmはビルドするごとにパッケージ自体のリリースバージョンにUNIX時間が設定されるので、パッケージ上は新しいバージョン扱いになり、基本的にはyum/dpkgはエラーは起こさないです。

$ rpm -q superunko
superunko-1.0.5-1567468284.x86_64

メジャー、マイナー、パッチバージョンは適宜大きな変更があったら手動 でリリースドラフトを作って上げる。パッケージ自体のリリースバージョンは機械的に上げる運用ですかね。

jiro4989 commented 4 years ago

普段のpush時に実行されるCIのあとに、masterブランチのpush時だけdeb, rpmファイルを生成してgit pushするジョブを追加しました。

jiro4989 commented 4 years ago

git tag コマンドの実行結果のタグバージョンを取得するために 最低1つはGitHubReleaseにタグを切ってある必要があったので、1.0.5というタグだけ切りました