背景: 没有基础CI/CD 建设,又不想大动干戈,所以想着写个脚本完成这个工作,windows中使用,如果是linux只需要修改检查和发送消息部分,发送消息部分可以使用cURL
获取本地和远程的commitId
$localCommitId = git rev-parse HEAD
$string = git ls-remote origin HEAD
$remoteCommitId = $string.Substring(0, 40)
echo $remoteCommitId
echo $localCommitId
#检查是否有新的提交
if ($remoteCommitId -ceq $localCommitId) {
exit;
}
else {
停止旧服务
Stop-Process -force -name *iValon.WES.API*
cd D:\
拉取代码
git pull
发布
dotnet publish -c Release -r win-x64 --self-contained true -o
关闭build-server
dotnet build-server shutdown
启动新进程
Start-Process .\i
发送企业微信消息
$msg = '{ "msgtype": "markdown", "markdown": { "content": "<font color=\"info\">' + $remoteCommitId + ':\u53d1\u5e03\u6210\u529f</font>" }}';
Invoke-WebRequest https://qyapi.weixin.qq.com -Method POST -Body $msg
}