简单的自动发布脚本

背景: 没有基础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": "\' + remoteCommitId + ':\u53d1\u5e03\u6210\u529f</font>" }}';

Invoke-WebRequest https://qyapi.weixin.qq.com -Method POST -Body $msg

}

相关推荐
weixin_307779135 小时前
Jenkins Pipeline: Basic Steps 插件详解
开发语言·ci/cd·自动化·jenkins·etl
weixin_307779137 小时前
Jenkins Pipeline:Groovy插件全解析:从原理到实战应用
开发语言·ci/cd·自动化·jenkins·etl
weixin_307779137 小时前
Jenkins Pipeline: API 插件详解
运维·ci/cd·自动化·jenkins·etl
weixin_307779137 小时前
Jenkins Declarative Pipeline:现代CI/CD的声明式实践指南
开发语言·ci/cd·自动化·jenkins·etl
yuguo.im1 天前
5 分钟快速入门 Github Actions
ci/cd·github·actions
测试人社区—小叶子1 天前
DevTestOps成熟度模型:从CI/CD到质量门禁
java·运维·网络·人工智能·测试工具·ci/cd·自动化
yuguo.im1 天前
5 分钟快速入门 Gitlab CI/CD
ci/cd·gitlab·github
weixin_307779131 天前
Jenkins Token Macro 插件:宏扩展的基石
开发语言·ci/cd·架构·自动化·jenkins
song5011 天前
鸿蒙 Flutter CI/CD 进阶:Jenkins + 鸿蒙打包自动化流程
分布式·python·flutter·3d·ci/cd·分类
靈龍靈1 天前
ELBK部署
运维·ci/cd·jenkins