windows下jenkins常见问题填坑

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



目录

  1. 主从节点

  2. Nuget自动包还原

  3. powershell部署

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

  5. Github私有项目pull时限



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

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

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



  用.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;[email protected]#qqq" providerName="System.Data.SqlClient" ‘

} | Set-Content $destination_file -encoding UTF8

时间: 2024-11-05 12:24:32

windows下jenkins常见问题填坑的相关文章

windows下tomcat日志的坑

最近在调试工程,想着在windows下多开窗口操作方便,结果发现日志竟然不全,百思不得其解.最后发现竟然是部署的坑. 之前的部署都是在bin目录下运行service.bat安装服务后了事,启停都通过tomcat8w.exe进行.现在发现缺少CATALINA_HOME环境变量,导致日志文件目录不正常,此情况下spring slf4j的日志就会丢失.在bin目录下跑一下setclasspath.bat,设置好CATALINA_HOME,重启tomcat服务,日志恢复正常. 原文地址:https://

在CENTOS7下安装kubernetes填坑教程(原创)

kubernetes(以下简称"k8s")目前是公认的最先进的容器集群管理工具,在1.0版本发布后,k8s的发展速度更加迅猛,并且得到了容器生态圈厂商的全力支持,这包括coreos.rancher等,诸多提供公有云服务的厂商在提供容器服务时也都基于k8s做二次开发来提供基础设施层的支撑,比如华为.可以说k8s也是Docker进军容器集群管理和服务编排领域最为强劲的竞争对手. 现在的Red Hat centos7的用户,已经可以使用熟悉的yum来直接安装k8s,但是真要安装起来,还是有相

windows下jenkins slave 搭建

一 创建新的Slave 注意Jenkins中slave称为note. 所以下面文章中的slave和node指的是一回事. 1)在Manage Jenkins-->Manage Nodes -->New Node下:输入Node Name,且选择Dumb Slave作为Slave的类型,然后OK. 2)在Slave的配置页面,输入如下: *executors的数量,1或多个: *输入Slave 上的跟目录,例如c:\jenkins: *Usage选择:Leave this machine for

windows下pyinstaller打包踩坑记录

示例: 需要打包的是 ReadConfig.py 文件,同文件夹下调用了Interface.py文件,ui文件夹下调用了 Ui_config.py和Ui_Error.py文件,Interface.py又调用了fileread文件夹中的文件 不要将入口程序写在__init__.py文件中,否则打包可以成功,但是无法运行,cmd运行也不报错,具体原因未知 在文件夹处打开cmd,输入: pyinstaller $IncludePath$ $FileName$ IncludePath:所有需要引用py的

Node填坑教程——HelloWorld

环境安装(极简): Node需要的环境可以说及其简单,也可以说及其复杂.为什么这么说呢? 如果里只需要运行环境那么到Node官网下载一个包就行了.里面自带npm管理工具,这是包管理工具,以后会频繁的使用它的功能.这时候Node的基本环境已经齐备了,尽管没有ide,没有测试,没有代码管理,没有其他的编译环境(C.C++.Python等).安装步骤不管是windows还是mac都是下一步的事,这里就不多说了. 那么,我们先从这样一个状态下进入Hello World. 打开终端,windows下开始-

windows 下搭建持续集成环境jenkins+git

知识准备:参考上一篇博客的资料调查 http://blog.csdn.net/aaashen/article/details/46550121 1 下载安装: 从jenkins 官网http://jenkins-ci.org/ 上下载windows 下的zip文件.可以稳定版的1.609.1.zip.下载后解压,点击setup.exe,一路next,即可安装成功.可以在浏览器中localhost:8080,出现jenkins页面. 亦可以下载war包,用java -jar jenkins.war

minikube windows hyperx填坑记

minikube windows hyperx填坑记 安装了一天半,还是没行,先放弃 开始 minikube start --vm-driver=hyperv --hyperv-virtual-switch=k8svswitch --cpus=4 --memory=4096 --docker-env HTTP_PROXY=http://192.168.31.77:1080 --docker-env HTTPS_PROXY=http://192.168.31.77:1080 --docker-en

Jenkins+Ant+Jmeter 自动化性能测试平台之填坑篇

一.前言 搭建Jenkins+Ant+Jmeter 自动化性能测试平台过程中,坦白说遇到了很多坑...写这篇博文的目的,除了总结经验方便自己以后查阅之外,也为了方便他人遇到相同的坑时,可以快速找到原因并解决.下面开始我漫长的填坑之路~~ 二.填坑之路 1.build.xml中<project name="ant-jmeter-test" default="run" basedir=".">这行代码怎么理解? default:run为b

Windows下Java File对象创建文件夹时的一个"坑"

import java.io.File; import java.io.IOException; public class DirCreate { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String dirStr="D:"; File dir=new File(dirStr); System.out.println("====