博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Jenkins

摘要:最近在写两个Jenkins之间的JOB同步插件。在测试的过程中,发现Jenkins CLI命令中的get-job、update-job、rename-job(这个是我的插件中集成进去的,官方没有提供)和Role-Based Strategy有点奸情。背景:Jenkins 1.5.18 +Role-based Authorization Strategy 1.1.2具体现象:create-job、delete-job、list-jobs等可以正常使用,但是get-job、update-job、rename-job则报错,并提示“No such job xxxx”。C:\> java -ja 阅读全文

posted @ 2013-06-13 15:58 Bruce Zhang 阅读(1470) 评论(0) 推荐(0)

摘要:Build User Vars Plugin:(提供一些Jenkins JOB Build的环境变量,参照:https://wiki.jenkins-ci.org/display/JENKINS/Build+User+Vars+Plugin)BUILD_USER – full name of user started build,BUILD_USER_FIRST_NAME – first name of user started build,BUILD_USER_LAST_NAME – last name of user started build,BUILD_USER_ID – id of 阅读全文

posted @ 2013-04-22 10:07 Bruce Zhang 阅读(438) 评论(0) 推荐(0)

摘要:看了一下源码,大致过程是:hudson.cli.CLI._main(String[] _args) hudson.cli.CliManagerImpl.main(List<String> args, Locale locale, InputStream stdin, OutputStream stdout, OutputStream stderr) hudson.cli.CLICommand.main(List<String> args, Locale locale, InputStream stdin, PrintStream stdout, PrintStream 阅读全文

posted @ 2013-04-19 16:02 Bruce Zhang 阅读(426) 评论(0) 推荐(0)

摘要:通常,我们都是在Jenkins安装完成后,从系统提供的地址下载jenkins-cli.jar,用以运行CLI脚本:Step1: 下载完成后,发现jenkins-cli也是一个单独的maven模块: <modelVersion>4.0.0</modelVersion> <parent> <artifactId>pom</artifactId> <groupId>org.jenkins-ci.main</groupId> <version>1.510</version> </paren 阅读全文

posted @ 2013-04-19 15:00 Bruce Zhang 阅读(983) 评论(0) 推荐(0)

摘要:官方文档参照:https://wiki.jenkins-ci.org/display/JENKINS/Writing+CLI+commandsPlugins can contribute additional commands toJenkins CLIwhich, since Jenkins 1.445, will also be available viaJenkins SSH.This is useful for (1) exposing administrative commands to admins, so that they can script some of the Jenk 阅读全文

posted @ 2013-04-19 14:42 Bruce Zhang 阅读(727) 评论(0) 推荐(0)

摘要:Jenkins在使用Role-Based Strategy进行权限管理时,存在一些默认的Group。记录如下:(1) anonymous: 匿名用户(2) authenticated: 登录用户 阅读全文

posted @ 2013-04-19 13:55 Bruce Zhang 阅读(399) 评论(0) 推荐(0)

摘要:标题上说CRUD,其实不太准确。我的这个插件不关注Retrieve操作,所以只研究:Create Job, Update Job, Rename Job, Delete Job1. Create(创建JOB)Jenkins Job的创建有三种方式:通过Copy已有JOB创建通过CLI命令远程创建通过Jenkins创建Job页面填写相关配置信息来创建。这三种方式的实现在hudson.model.ItemGroupMixIn中实现,源码片段如下: /** * Copies an existing {@link TopLevelItem} to a new name. * ... 阅读全文

posted @ 2013-04-19 11:03 Bruce Zhang 阅读(952) 评论(0) 推荐(0)

摘要:由于某种原因,我有两台Jenkins服务器,一台在北京(Jenkins B),一台在上海(Jenkins S)。而且,两台服务器上的JOB和View需要保持一致。人工操作的成本太高,出错率太大。所以决定写一个插件实现。思路如下:(1)监听:监听master jenkins server上View/Job的CRUD(Create,Retrieve,Update,Delete)操作。(2)CLI:利用CLI机制,实现远程CRUD。 扩展CLI的实现,参照:https://wiki.jenkins-ci.org/display/JENKINS/Writing+CLI+commands 阅读全文

posted @ 2013-04-18 22:25 Bruce Zhang 阅读(626) 评论(0) 推荐(0)

摘要:WIKI文档参照:https://wiki.jenkins-ci.org/display/JENKINS/Defining+a+new+extension+point片段如下:Implementing extension pointsImplementing an extension point defined in a plugin is no different from implementing an extension point defined in the core. See hudson.Extension for more details.@Extensionpublic cl 阅读全文

posted @ 2013-04-18 21:58 Bruce Zhang 阅读(1625) 评论(0) 推荐(0)

摘要:官方文档参照:https://wiki.jenkins-ci.org/display/JENKINS/ArchitectureJenkins is primarily a set of Java classes that model the concepts of a build system in a straight-forward fashion (and if you are using Jenkins, you've seen most of those already). There are classes likeProject,Build, that represent 阅读全文

posted @ 2013-04-17 12:39 Bruce Zhang 阅读(799) 评论(0) 推荐(0)

摘要:官方文档参照:https://wiki.jenkins-ci.org/display/JENKINS/Extension+pointsJenkins defines extension points, which are interfaces or abstract classes that model an aspect of a build system.Those interfaces define contracts of what need to be implemented, and Jenkins allows plugins to contributethose impleme 阅读全文

posted @ 2013-04-16 15:17 Bruce Zhang 阅读(3659) 评论(0) 推荐(0)

摘要:官方文档参照:https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorialThis document, together with thehello-world plugin, shows you how to get started with the plugin development.What Can Plugins Do?Jenkins defines extensibility points, which are interfaces or abstract classes that model an aspect of a 阅读全文

posted @ 2013-04-16 15:11 Bruce Zhang 阅读(1576) 评论(0) 推荐(0)

摘要:官方文档参照:https://wiki.jenkins-ci.org/display/JENKINS/Extend+JenkinsGeneral ContributionWant to help but don't know what to do? You can help to extend and enrich the Jenkinscommunityeven if you don't necessarily write code. Here isBeginners Guide to Contributing(发布自己的Jenkins插件). Latest snapshot 阅读全文

posted @ 2013-04-16 14:51 Bruce Zhang 阅读(2212) 评论(0) 推荐(0)

摘要:转自:http://www.scmeye.com/thread-3470-1-1.html持续交付概念的流行反映了业务部门对于更快交付速度的渴望和技术团队对交付这一老大难问题的重视。从持续集成到持续交付,ThoughtWorks一直在积极的实践、思考、总结。这篇文章中我将分享ThoughtWorks一支开发团队在这个领域的收获和总结。背景我们的客户是澳洲的房地产搜索门户,每年独立访问者近300万(澳洲人口2000万),年营收近3亿美金,澳洲61%的房产都在此网站展示。我们的团队工作在商业地产、住宅、土地购置等与盈利息息相关的全产品线的核心系统上。成就2年前,与大多数“常规”项目一样,部署和发布 阅读全文

posted @ 2013-04-08 10:22 Bruce Zhang 阅读(738) 评论(0) 推荐(0)

摘要:操作系统:CentOS平台:Jenkins1. 启动Jenkins时,会启动一个JVM:jenkins 12280117 16:29 ? 00:00:54 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war... 阅读全文

posted @ 2013-03-18 17:27 Bruce Zhang 阅读(1480) 评论(0) 推荐(0)

摘要:首先看看一些文章:http://www.freshblurbs.com/blog/2005/05/19/explaining-java-lang-outofmemoryerror-permgen-space.htmlhttp://stackoverflow.com/questions/1124131/what-can-be-done-with-permgen-out-of-space-exception-in-tomcat-spring-hibernat相关案例:(1)有些人是在SUN JDK+Tomcat 5.5.20运行服务的时,服务器跑几天后就会挂掉,并报java.lang.OutOfM 阅读全文

posted @ 2013-02-05 10:18 Bruce Zhang 阅读(642) 评论(0) 推荐(0)

摘要:背景:我用Jenkins做CI,并同时加Sonar做单元测试和质量扫描。大家都知道,让Maven过滤掉单元测试一般会使用 -Dmaven.test.skip=true(即不编译单元测试代码,也不运行单元测试)。但是如果直接用-Dmaven.test.skip=true会导致Sonar也不跑单元测试。技巧:使用-Dtest -DfailIfNoTests=false 让单元测试仅仅在Sonar扫描时启动。解释:下面是官方对于“test”和“failIfNoTests”的解释:testString-Specify this parameter to run individual tests by 阅读全文

posted @ 2013-01-17 18:39 Bruce Zhang 阅读(2942) 评论(0) 推荐(0)