.Net在Windows上使用Jenkins做CI/CD( 二 )


添加NuGet还原源配置项在部署Jenkins服务器47.115.111.58 , 打开C:Windowssystem32configsystemprofileAppDataRoamingNuGetNuGet.Config , 没有的化可以自己建一个 , 输入以下脚本 。
如果没有配置好 , 接下来的应用项目可能会编译时还原包失败导致无法编译通过 。
<?xml version="1.0" encoding="utf-8"?><configuration><packageSources><add key="nuget.org" value=https://www.isolves.com/it/cxkf/yy/net/2020-09-10/"https://api.nuget.org/v3/index.json" protocolVersion="3" />安装OpenSSH服务端根据上面表格的地址下载解压后 , 在服务器47.115.151.108以管理员启动CMD
 
cd C:toolsOpenSSH-Win64 #安装服务端powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 #启动服务net start ssh-agentsc config ssh-agent start= autonet start sshdsc config sshd start= auto #防火墙打开22端口#大于等于 Windows Server 2012New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 #小于 Windows Server 2012netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22这样就可以通过administrator账号或者管理员账号在客户端用ssh登录了 。
以上是各个服务器基本依赖安装 。
安装Jenkins在服务器47.115.111.58 , 先把jdk与git安装好后 , 点开Jenkins安装 , 选择默认路径下一步 , 遇到设置服务登录账户的时候 , 必须选择以administrator安装 , 不然后续会有很多执行的权限问题 。

.Net在Windows上使用Jenkins做CI/CD

文章插图
 
如果点击Test Credentials无法通过 , 可以在运行输入mmc打开策略编辑器 , 并在计算机配置-[windows设置]-[安全设置]-[本地策略]-[用户权限分配]-[作为服务登录] , 填写administrator或者您的管理员账号 。
.Net在Windows上使用Jenkins做CI/CD

文章插图
 
接着点击下一步等待完成后 , 会弹出一个localhost:8080的页面 , 根据他的指示初始化界面就可以了 。输入完管理员账号后这个时候可以去修改workspace的地址 , 当时我没有修改地址的时候 , 因为路径有特殊字符导致无论如何都无法用msbuild编译通过 。
打开C:WindowsSystem32configsystemprofileAppDataLocalJenkins.jenkinsconfig.xml , 修改workspaceDir属性的值为C:/jenkins_workspace/${ITEM_FULL_NAME} , 尽可能给一个简单纯英文的路径 。
配置Jenkins在主界面点击【Manage Jenkins】-【Configure System】界面 , 定位到Shell , 输入您刚安装的git路径的sh.exe , C:Program FilesGitbinsh.exe
.Net在Windows上使用Jenkins做CI/CD

文章插图
 
同样界面定位到SSH Servers点击Add Server把刚刚安装OpenSSL的服务器47.115.151.108填写进去 , 账号密码是47.115.151.108服务器管理员的账号密码 。
.Net在Windows上使用Jenkins做CI/CD

文章插图
 
在主界面点击【Manage Jenkins】-【Global Tool Configuration】界面 , 定位到Git , 输入您刚安装的git路径的git.exe , C:Program FilesGitbingit.exe
.Net在Windows上使用Jenkins做CI/CD

文章插图
 
到这里Jenkins的配置基本上完成了 。
自动发布组件包到NuGet新建Freestyle project , 并在【源码管理】、【构建】填入您的构建信息 , 构建脚本我是保存在服务器上 , 因为保存在服务器上更加可靠 。

.Net在Windows上使用Jenkins做CI/CD

文章插图
 

.Net在Windows上使用Jenkins做CI/CD

文章插图
 
构建脚本shell示例#!/bin/bash #脚本开始执行echo '脚本开始执行'base_path=C:/jenkins_workspace/Librariynuget_url=http://47.115.111.58:8008/nugetnuget_api_key=B82D6DDB-C6F958E8C945nuget restore $base_pathfor project_name in $base_path/*doproject_path=$project_namepackage_path=$project_path/packagesrm -rf $package_pathnuget pack $project_path -Build -IncludeReferencedProjects -Properties Configuration=Release -OutputDirectory $package_path &&nuget push -ApiKey $nuget_api_key -Source $nuget_url $package_path/*.nupkgif [ $? -eq 0 ]; thenecho '发布成功:'$project_name''elseecho '发布失败:'$project_name''fidoneecho '脚本执行结束'


推荐阅读