@echo off :: 获取Git提交哈希 for /f "delims=" %%i in ('git rev-parse HEAD') do set GIT_COMMIT_HASH=%%i :: 获取Git分支名称 for /f "delims=" %%i in ('git branch --show-current') do set GIT_BRANCH=%%i set DingAccessToken=9802639f5dea7dd4aaff98a8f264b98c224f90ceeed3c26b438534e3a79222b1 set DingSecret=SECffd7d2afe9d0590fd04e36a0efa44d73553fb8f702eb1690e579996aec6c1386 :: 获取编译时间 ::setlocal enabledelayedexpansion :: 获取当前日期和时间,并格式化为 YYYYMMDDHHMMSS for /f "tokens=*" %%i in ('powershell -command "Get-Date -Format yyyyMMddHHmmss"') do ( set BuildDate=%%i ) :: 输出为Go链接器标志格式 echo -X main.GitCommitHash=%GIT_COMMIT_HASH% echo -X main.GitBranch=%GIT_BRANCH% echo -X main.BuildDate=%BuildDate% echo -X main.DingAccessToken=%DingAccessToken% echo -X main.DingSecret=%DingSecret% ::endlocal set GOARCH=amd64 set GOOS=linux set CGO_ENABLED=0 cd ../server/truco go build -ldflags "-X main.GitBranch=%GIT_BRANCH% -X main.GitCommit=%GIT_COMMIT_HASH% -X main.BuildDate=%BuildDate% -X main.DingAccessToken=%DingAccessToken% -X main.DingSecret=%DingSecret%" -o ../../bin/truco cd ../cacheta go build -ldflags "-X main.GitBranch=%GIT_BRANCH% -X main.GitCommit=%GIT_COMMIT_HASH% -X main.BuildDate=%BuildDate% -X main.DingAccessToken=%DingAccessToken% -X main.DingSecret=%DingSecret%" -o ../../bin/cacheta cd ../db go build -ldflags "-X main.GitBranch=%GIT_BRANCH% -X main.GitCommit=%GIT_COMMIT_HASH% -X main.BuildDate=%BuildDate% -X main.DingAccessToken=%DingAccessToken% -X main.DingSecret=%DingSecret%" -o ../../bin/sambadb cd ../clickhouse go build -ldflags "-X main.GitBranch=%GIT_BRANCH% -X main.GitCommit=%GIT_COMMIT_HASH% -X main.BuildDate=%BuildDate% -X main.DingAccessToken=%DingAccessToken% -X main.DingSecret=%DingSecret%" -o ../../bin/clickhousedb cd ../hall go build -ldflags "-X main.GitBranch=%GIT_BRANCH% -X main.GitCommit=%GIT_COMMIT_HASH% -X main.BuildDate=%BuildDate% -X main.DingAccessToken=%DingAccessToken% -X main.DingSecret=%DingSecret%" -o ../../bin/hall cd ../club go build -ldflags "-X main.GitBranch=%GIT_BRANCH% -X main.GitCommit=%GIT_COMMIT_HASH% -X main.BuildDate=%BuildDate% -X main.DingAccessToken=%DingAccessToken% -X main.DingSecret=%DingSecret%" -o ../../bin/club cd ../other go build -ldflags "-X main.GitBranch=%GIT_BRANCH% -X main.GitCommit=%GIT_COMMIT_HASH% -X main.BuildDate=%BuildDate% -X main.DingAccessToken=%DingAccessToken% -X main.DingSecret=%DingSecret%" -o ../../bin/other