標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

nyagos のリリース手順 - make.cmd の秘密(備忘録)

nyagos にはビルドスクリプト: make.cmd というものがあります。

これ、中身は PowerShell で、機能過多なので普通のバッチファイルか Makefile などに変えてスリムなものに戻したいと思っているのですが、まだちょっと無理な状況です。

というわけで、まだしばらくお世話になるので、万が一に備えて、使い方を書いておこうと思いました。

普通のビルド

make だけで、デフォルトの GOOS 、デフォルトの GOARCH でビルドする。 この時、表記バージョンは 4.4.6_0-8-ge5e89d3-windows-amd64 といったコミットIDまで含んだものになる。

先頭のバージョン部分(4.4.6_0)は Etc\version.txt から読む。

アーキテクチャ・OSを変えてビルド
  • make 386 … GOARCH=386 でビルドする
  • make amd64 … GOARCH=amd64 でビルドする
  • make linux … GOOS=linux でビルドする。こちらだけはコミット ID が含まれない

なお make linux 386 のようなものはない(linux 指定の時はかならずデフォルト GOARCH のまま)。特にニーズがないので…

リリースパッケージ向けにビルドする
  • make release … デフォルトの GOOS、デフォルトの GOARCH でリリース向けビルドを作成する。表記バージョンは 4.4.6_1-windows-amd64 などのようにコミットIDが入らなくなる
  • make release 386アーキテクチャを変えて、リリース向けにビルドする。なお、make release linux はなくて、make linux をそのまま使う

など、実行ファイルは以下2箇所に同じもの作られる

  • make.cmd と同じフォルダー
    • すぐ試す用
  • cmd\amd64 , cmd\386 , cmd\linux
    • アーキテクチャが違うものを互いに上書きしないで残しておく用
    • 次のバージョンから bin\amd64 , bin\386 , bin\linux へ変更予定
    • Linux 版をテストする時は WSL の bash を起動して、そこから ./nyagos を呼び出したりする
パッケージを作る

リリース向けビルドをすでに行っていることが前提。これで nyagos-4.4.6_1-windows-amd64.zip 、nyagos-4.4.6_1-linux-amd64.tar.gz みたいなパッケージを作る。

  • make package
  • make package 386
  • make package linux
(余談)バージョンアップの時にすること
  1. Doc\release_note_en.md , Doc\release_note_ja.md に、新しいバージョンの見出しをつける
  2. Etc\version.txt のバージョンを更新する
  3. git commit && git pushbump to バージョンナンバー としているコミットはたいていこれ
  4. make release && make package (Windows/amd64)
  5. make release 386 && make package 386 (Windows/386)
  6. make linux && make package linux (Linux/amd64)
  7. GitHub の Release タブで Draft a new relese をたたく
  8. タグ・リリースタイトルともに 4.4.6_1 といったバージョンナンバーをそのまま付ける。リリース内容は Doc\release_note_en.txt と Doc\release_note_ja.txt の両方から引用するだけ
  9. 作成したバイナリパッケージ3点をドロップして Publish New Release
  10. git pull して、GitHub 側が作成した新タグをローカルに取り込む
  11. アナウンス用の twitter アカウントから、リリースしたとの告知を行う
  12. 個人の twitter アカウントからリリース告知を RT する
  13. はてなブログにリリースの内容を解説する記事を書く
    • 最近は予告記事に修正内容を書いて、リリース記事はシンプルにしてたりしますが。
  14. その記事も twitter で告知だして、RT(しつこい)

というようなことをして、今、4.4.6_1 をリリースしました。だいぶと自動化はしたんですが、まだまだ手間かかりますね…

以上です。