Jenkins在windows平台自动化构建代码

Jenkins服务端:centos6.8 客户端:windows server2012 windows10 工具:cwRsync 注:复制为jenkins工作目录到网站目录,无需服务端。 配置安装slave端 所用的插件:Copy Data To Workspace Plugin 配置windows节点 \1. 主界面->【系统管理】->【管理节点】->【新建节点】,进行节点的添加: \2. 输入节点名称,选择【Permanent Agent】。如果添加过slave的话会出现【复制现有节点】操作 \3. 配置节点的详细信息 此处配置需要注意的有以下几个方面 【# of executors】:建议不要超过CPU核心数,一般不要写特别大。 【远程工作目录】:master将代码库中的代码复制到slave时,存放的临时目录,如slave的daemon服务也会放在此目录。一个job一个文件夹。 【用法】:选择【只允许运行绑定到这台机器的Job】,此模式下,Jenkins只会构建哪些分配到这台机器的Job。这允许一个节点专门保留给某种类型的Job。例如,在Jenkins上连续的执行测试,你可以设置执行者数量为1,那么同一时间就只会有一个构建,一个实行者不会阻止其它构建,其它构建会在另外的节点运行。 【启动方式】:选择【Launch agent via Java Web Start】,以windows服务的方式启动,这个为最好配置的。注意:2.x版本的默认没有这个选项,需要单独开启。 \4. 配置slave端并且添加至windows服务 在点击保存后,在node列表中会存在此列表默认是未连通状态 点击进入详情页面会提示slave端的安装方法,此处讲解下载文件方式。 【Launch】:浏览器下载文件方式 【Run from agent command line】:从远端代理命令运行 注意:这是java服务,每个slave端必须安装jdk后才可运行。 xml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <jnlp codebase="http://10.0.0.11:8080/jenkins/computer/test/" spec="1.0+"> <information> <title>Agent for test</title> <vendor>Jenkins project</vendor> <homepage href="https://jenkins-ci....

 ·  · 

jenkins多个slave遇到的坑

jenkins配置如下 在Jenkins上添加了两个节点(Slave Node),且为这两个节点设置了一个相同的标签 “windows”。创建了一个新Job – “test-windows”,选择的是”构建一个自由风格的软件项目”。并且为了使多个slave并行构建,我选择了"只允许绑定到这台机器的job”,在"Label Expression"中选择了"windows"。 然而这种方式并不能实现多个slave并行操作。网上90%说的都不靠谱。 在我使用的过程中,使用了label 去管理多个 Slave,给一个项目的构建指定了这个 label,会发现这个项目的多次构建,都使用同一个 Slave,并没有使用 label 里的其它 Slave去构建。 查了很多资料才发现原来从 jenkins 的调度算法使用了一致性的哈希算法,jenkins根据添加的信息评测出优先级列表,选择优先级最高的Slave去构建,当最优slave不满足条件或者没有可用的 execut时,才会选用下一个slave。 查了很多资料发现构造多配置项目可以选择构建时的slave。这样可以实现多slave并行构建。 multi configuration project比起构建自由风格的软件项目多个Configuration Matrix,在这里可以选择多个slave。这里选择lable的话,还是会使用默认算法从lable中选择最优slave进行构建。 配置完成后再构建时,会同时在多个slave上进行并行构建 禁止在master上运行job或和业务相关的操作 将 [executors] 设置为0

 ·  · 

jenkins检查代码 如没更新停止构建步骤

需求分析 在jenkins中没有找到构建前插件,每次构建时间很长,希望可以实现判断代码是否更新,如果没更细则停止构建步骤。 实现步骤 在构建时执行shell命令,而jenkins提供的的环境变量可以实现此判断 https://wiki.jenkins.io/display/JENKINS/Conditional+BuildStep+Plugin text 1 2 3 4 5 6 GIT_COMMIT The commit hash being checked out. GIT_PREVIOUS_COMMIT The hash of the commit last built on this branch, if any. GIT_PREVIOUS_SUCCESSFUL_COMMIT The hash of the commit last successfully built on this branch, if any. GIT_COMMIT 当前拉取版本的commit id GIT_PREVIOUS_COMMIT 最后在此分支上构建的 commit id GIT_PREVIOUS_SUCCESSFUL_COMMIT 最后在此分支上成功构建的 commit id号 text 1 2 3 4 5 6 7 8 #!/bin/bash if [ $GIT_PREVIOUS_SUCCESSFUL_COMMIT == $GIT_COMMIT ];then echo "no change,skip build" exit 0 else echo "git pull commmit id not equals to current commit id trigger build" fi 注意,不能使用-eq 只能使用 “==” 提交新版本后,构建提示如下:...

 ·  · 

jenkins github tag使用方式

jenkins github tag 测试项目地址:GitHub - go-redis\redis: Type-safe Redis client for Golang 插件下载地址:[git-parameter](http:\updates.jenkins-ci.org\download\plugins\git-parameter) pt-online-schema-change Jenkins中配置gradle项目的坑 - doctorq - CSDN博客

 ·  ·