Windows+Jenkins+gitblit自动化部署AspNetCore到IIS

所用到的软件

Jenkins(jenkins.msi)
JDK
GitBlit
Git
asp.net core  sdk(使用运行时,dotnet 有些命令无法执行成功)
iis

 附带说明更改Jenkins工作空间路径

首先添加一个环境变量JENKINS_HOME
关闭jenkins 服务

然后更改安装目录下的jenkins.xml

修改  <env name="JENKINS_HOME" value="%JENKINS_HOME%"/>

 <arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "E:\Program Files\Jenkins\jenkins.war" --httpPort=8080 --webroot="%JENKINS_HOME%\Jenkins\war"</arguments>
  
 <pidfile>%JENKINS_HOME%\Jenkins\jenkins.pid</pidfile>

然后重启jenkins 服务

就会出现新手配置界面操作

 

 

webhook钩子自动监听push自动构建

配置git代码地址

勾选SCM 不用填写任何信息

 

配置git插件token凭证

 

 

继续配置构建步骤
其中路径自己根据项目来改,也可以根据环境变量来取(我这里为了方便直接取)

cd C:\ProgramData\Jenkins\.jenkins\workspace\testapi
dotnet clean --configuration Release
dotnet restore -s https://nuget.cdn.azure.cn/v3/index.json
dotnet restore -s https://api.nuget.org/v3/index.json
dotnet restore -s E:\nuget\packages
dotnet build
dotnet publish "C:\ProgramData\Jenkins\.jenkins\workspace\testapi\Ms.JG.Mall.Mobile.Api" -o C:\ProgramData\Jenkins\.jenkins\workspace\testapi\Ms.JG.Mall.Mobile.Api\publish

//这里可以添加停止应用程序池命令,等拷贝完后再启动
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:TestApi
xcopy "C:\ProgramData\Jenkins\.jenkins\workspace\testapi\Ms.JG.Mall.Mobile.Api\publish"  "E:\IISFile\TestApi" /s/e/y/exclude:C:\ProgramData\Jenkins\.jenkins\workspace\testapi\Ms.JG.Mall.Mobile.Api\jenkins.ignore.txt

//启动应用程序池命令
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:TestApi





#########################使用环境变量来自动识别路径和Job空间名称#########################


cd "%JENKINS_HOME%\Workspace\%JOB_NAME%"
dotnet clean --configuration Release
dotnet restore -s https://nuget.cdn.azure.cn/v3/index.json
dotnet restore -s https://api.nuget.org/v3/index.json
dotnet restore -s E:\nuget\packages
dotnet build
dotnet publish "%JENKINS_HOME%\Workspace\%JOB_NAME%\Ms.JG.Mall.Mobile.Api" -o "%JENKINS_HOME%\Workspace\%JOB_NAME%\Ms.JG.Mall.Mobile.Api\publish"
C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:TestApi
xcopy "%JENKINS_HOME%\Workspace\%JOB_NAME%\Ms.JG.Mall.Mobile.Api\publish"  "E:\IISFile\TestApi" /s/e/y/exclude:%JENKINS_HOME%\Workspace\%JOB_NAME%\Ms.JG.Mall.Mobile.Api\jenkins.ignore.txt
C:\Windows\System32\inetsrv\appcmd.exe start apppool /apppool.name:TestApi




注意注意:
xcopy 命令包含exclude 时,exclude的文件要和xcopy 复制文件夹再同一目录,
否则会提示无法读取文件:exclude 的文件

 

 

 

git使用ssh拉取代码报错:

using GIT_SSH to set credentials gitblit Verifying host key

using known hosts file

You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Configure Global Security' -> 'Git Host Key Verification Configuration' and configure host key verification.

出现此问题是:jenkins登录使用的是jenkins系统用户,而不是windows系统用户,所以读取known_hosts提示找不到

解决方式:
C:\Users\Administrator\.ssh 会有config,id_rsa,id_rsa.pub,known_hosts文件,把这4个文件拷贝到C:\Windows\System32\config\systemprofile\.ssh

注意:
另外Administrator账户是指windows登录账户
.ssh 目录不存在,则创建

Jenkins 任务控制台日志中文乱码问题解决

1.添加Windows 环境变量
变量名:JAVA_TOOL_OPTIONS 
变量值:-Dfile.encoding=UTF8

2.添加jenkins系统全局变量
键:LANG   
值:zh_CN.UTF-8 

3.修改jenkins,xml 增加编码方式 jenkins,xml在jenkins安装目录下
-Dfile.encoding=utf-8   或者-Dfile.encoding=UTF8 

4.jenins 执行windows 批量命令,中文乱码,修改为UTF-8格式
 在注册表 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor 添加
键: AutoRun
字符串格式值:chcp 65001

/**************************控制台编码格式说明****************************/
代码页code page
UTF-8            65001
简体中文(GB2312) 936 
繁体中文BIG5      950
日文              932
美国/加拿大英语     437
俄文              866
韩文              949
 

查看当前代码页
chcp
设置当前代码页
临时设置
:: 设置UTF-8
chcp 65001

:: 设置简体中文(GB2312)
chcp 936 

/**************************控制台编码格式说明****************************/


4.保存重启
url+restart


5.验证是否生效

 

 

 

到此自动化部署就完成了

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬砖的工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值