所用到的软件
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.验证是否生效
到此自动化部署就完成了