windows下jenkins常见问题填坑

 没有什么高深的东西,1 2天的时间大多数人都能本身摸索出来,这里将本身遇到过的问题分享出来避免其余同窗再一次挖坑.php


目录html

  1. 主从节点java

  2. Nuget自动包还原linux

  3. powershell部署git

  4. 内网机器实现基于变化的构建github

  5. Github私有项目pull时限web


  所谓主从,主要应用的场景例如多种环境(windows/linux,.net/java/php)须要不一样的构建基础,而咱们又不想都将一系列的步骤和环境混杂在一台构建服务器上,因此相似于go中的代理,jenkins也提供了slave节点的概念,你们能够把不一样类别的项目的构建部署在分类的节点服务器上。节点服务器不须要安装完整的jenkins包,构建事件的分发由master端来执行。shell

这里须要注意的就是主从节点之间的通讯,我这里选择是将从节点以windows service的方式启动,而我碰到的坑就是环境变量的配置问题,当我在主从服务都安装好jdk而且配置完环境变量后,发现启动从节点时仍是怎么都找不到jdk,卡了半个小时才发现jenkins 从节点的环境变量是须要在web系统中配置的,此坑填平,后者慎入。数据库

至于slave端的分配在构建配置中windows

 


  用.net开发的同窗nuget应该大多都涉及到,相似java的maven,神器之一,很少说。若是用visual studio开发这里会有一个选项

选中这里的话 会再在你rebuild项目的时候 自动将丢失的包补齐,固然仅限于公众平台上的内容,若是是同窗们本身开发的local版本的包还会遇到另外的问题,这里咱们重点不计较这些。

回到jenkins上来由于jenkins的构建条件中目前还不支持直接使用.net的ide,因此咱们须要安装msbuild的插件

装完之后构建后发现编译失败,各类组件丢失。这里再填一坑,首先卸载咱们的主要输出项目,而后编辑项目属性内容,在最后加上一个节点配置

?
1
2
3
4
< Target Name="AfterBuild">
     < MSBuild Condition="'$(Configuration)|$(Platform)' == 'Release|x86'" Projects="NuGet\NuGet.msbuild" />
   </ Target >
   < Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />  

  还原项目,这样再使用msbuild命令就OK了。


  powershell的使用场景能够这样理解,在咱们build经过一个项目后,咱们须要将他部署在一台测试服务器上,可是咱们的数据库配置须要修改,如何去除人工的干预,这里就须要使用到powershell或者其余工具了。

powershell的使用你能够分为2种,一种是写好ps脚本而后经过batch command中powershell命令来完成,另一种是jenkins直接安装powershell命令,这里更推荐后者,由于有些时候你并无权限上服务器上修改脚本或者其余元素,全部后者更直观简单,简单的数据库链接修改脚本

?
1
2
3
4
5
$original_file = 'xx\web.config'
$destination_file 'xx\web.config'
(Get-Content $original_file ) | Foreach-Object {
     $_ -replace 'name="dbdemo" connectionstring=".+" ' , 'name="dbdemo"  connectionString="server=(local);database=basedemo;user id=demoUser;password=!@#qqq" providerName="System.Data.SqlClient" '
} | Set-Content $destination_file -encoding UTF8

 

  若是咱们的master机器部署在内网,github经过hook的方式回调不到,那么咱们就很难基于github项目的push动做来进行基于版本的即时构建。怎么办?这里可使用一个取巧的办法

在poll scm模式下选择* * * * *,当系统发现本地文件没有变动时,会忽略掉这次构建。


  github私有项目,主要也就是ssh受权的问题,这里的坑不是权限认证问题,而是github插件的时限问题,默认是10分钟,因为某些项目可能资源比较大,第一次pull的时候耗费时间比较长,可是控制台提示一直停留在认证那个阶段,让操做人员误觉得是认证问题,这个估计也算个坑吧。填坑方法以下图:

ok 简单的填坑总结。有些问题虽然小可是一点一点排查总归仍是浪费时间,但愿对你们有帮助

原创做品容许转载,转载时请务必以超连接形式标明文章原始出处以及做者信息。
做者:熬夜的虫子
点击查看: 博文索引
相关文章
相关标签/搜索