GOOS=windows or linux、GOARCH=amd64 or 386 という組み合わせで、(フォルダー名)-(年月日)-(GOOS)-(GOARCH).zip
という zip ファイルを作ります。
go-package.cmd
@echo off setlocal set "PROMPT=$ " for %%I in (%CD%) do set "NAME=%%~nI" for %%I in (windows linux) do for %%J in (amd64 386) do call :one %%I %%J endlocal exit /b :one set GOOS=%1 set GOARCH=%2 set SUFFIX= if %GOOS% == windows set "SUFFIX=.exe" echo GOOS=%GOOS% GOARCH=%GOARCH% @echo on go build zip -9 %NAME%-%DATE:/=%-%GOOS%-%GOARCH%.zip %NAME%%SUFFIX% @echo off exit /b
これで作ったリリースがこちら
追記 (2019.11.02)
ちょっと直しました。
@echo off setlocal set "PROMPT=$ " for %%I in (%CD%) do set "NAME=%%~nI" for %%I in (windows linux) do for %%J in (386 amd64) do call :one %%I %%J endlocal exit /b :one set GOOS=%1 set GOARCH=%2 set SUFFIX= if %GOOS% == windows set "SUFFIX=.exe" echo GOOS=%GOOS% GOARCH=%GOARCH% @echo on go build -ldflags "-s -w" zip -9 %NAME%-%DATE:/=%-%GOOS%-%GOARCH%.zip %NAME%%SUFFIX% @echo off exit /b
- ビルドする順番が amd64 → 386 だったのを 386 → amd64 にした
- あとに残った実行バイナリが 386 だと、WSL で Linux 版を即テストできないから
- go のオプションに
-ldflags "-s -w"
を追加して実行ファイルのサイズを小さくした
以上です