標準愚痴出力

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

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(1)目次

NYAGOS は 4.2.1 まではバッチファイルで、以下の作業を行っていた。

  • 実行ファイルの作成
    • バージョン文字列の取得
      • リリース(make release)の時はテキストファイル(Misc\version.txt)
      • スナップショット(引数なし make)の時は git describe --tags を使用
    • バージョン文字列・アイコンの埋め込み
      • Go言語のソースへのバージョン文字列埋め込み
      • Windows のプロパティとしてのバージョン文字列・アイコンの埋め込み
    • nyagos.d 以下のファイルの EXE ファイル内への埋め込み(実は nyagos.d が存在しない場合にデフォルトとして利用するようになっている)
    • 必要最小限の go fmtDOSファイルシステムアーカイブビットを利用している)
    • 作成CPUアーキテクチャの判断
      • goarch.txt があれば、その中身を %GOARCH% に設定する
      • goarch.txt がなければ、go version の結果から %GOARCH% を設定(不要だが、後の処理を合わせるため)
    • 必要に応じて go generate の実行
  • リリース用 ZIP ファイル作成(make package)
  • C言語定数の Go ソース化(make constgcc)
  • make clean
  • make get(サブディレクトリ全部に対する go get
  • 実行ファイルのバージョン・アーキテクチャの確認(make status

NYAGOS 4.2.2 では、これらをだいたい PowerShell に置き換えた。

気が向いたら、順次説明してゆきたい