简单的自动发布脚本

背景: 没有基础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

}

相关推荐
JZC_xiaozhong5 天前
支付宝“政府补贴”bug事件背后的权限管理启示
大数据·数据库·安全·ci/cd·金融·云计算·bug
_.Switch6 天前
高效构建与部署Python Web应用:FastAPI的测试与持续集成
前端·网络·数据库·python·ci/cd·fastapi
ihengshuai6 天前
手摸手实战前端项目CI CD
前端·ci/cd·云原生·kubernetes·devops
阳光阿盖尔7 天前
【CI/CD构建】关于不小心将springMVC注解写在service层
ci/cd·持续集成·构建·持续交付·火麒麟
测试者家园8 天前
如何提高自动化测试覆盖率和效率
自动化测试·软件测试·人工智能·ci/cd·测试覆盖率·it行业·质量效能
cmgdxrz9 天前
持续集成 02|Jenkins介绍与安装、Postman集成Jenkins、代码集成Jenkins
运维·ci/cd·jenkins
风尘浪子10 天前
DevOps 企业级 CI/CD 实战 —— 整合 GitLab+Jenkins+Harbor+Docker 实现代码全自动化流程管理
ci/cd·docker·pipeline·gitlab·jenkins·harbor·devops·sshpublish
cmgdxrz10 天前
持续集成 01|Gitee
ci/cd·gitee