<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Lynn Lin的专栏]]></title><description><![CDATA[关注持续集成，关于软件测试，关注软件开发流程]]></description><link>https://blog.youkuaiyun.com/lynnos</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lynnos]]></copyright><item><title><![CDATA[开源了 MongoDB BOSH release]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/60465905</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/60465905</guid><author>lynnos</author><pubDate>Sun, 05 Mar 2017 11:43:34 +0800</pubDate><description><![CDATA[在开发云产品中，我们开发了基于BOSH的MongoDB的release，正式放到了https://github.com/cloudfoundry-community/mongodb-bosh-release 欢迎star和fork !!]]></description><category></category></item><item><title><![CDATA[how to setup razor in ubuntu 14.04 to deploy esxi 6.0]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/45199929</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/45199929</guid><author>lynnos</author><pubDate>Wed, 22 Apr 2015 20:07:49 +0800</pubDate><description><![CDATA[setup razor-server in ubuntu 14.04 and deploy esxi 6.0]]></description><category></category></item><item><title><![CDATA[主干开发，分支发布]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6917857</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6917857</guid><author>lynnos</author><pubDate>Sat, 29 Oct 2011 23:14:00 +0800</pubDate><description><![CDATA[通过努力，这种模式在我所在的项目中变成现实，去除了master上代码冻结这一"邪恶的做法"，是开发人员在QA qual期间可以继续提交代码，我也同时提出了每日的merge来完成从分支到主干的回归。
    充分发挥分支的力量，可以给项目带来很多的好处，但是同时保证这个成功，却需要很多方面的努力
1 分支的生命周期不能无限制下去
2 分支上的东西要持续的集成回来
3 分支上尽量只提交bug]]></description><category></category></item><item><title><![CDATA[使用git bisect去定位引入bug的代码]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6876527</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6876527</guid><author>lynnos</author><pubDate>Sat, 15 Oct 2011 17:42:19 +0800</pubDate><description><![CDATA[上周五又使用了一次git bisect去定位一个bad commit,体验很好
$ git bisect start
$ git bisect good XXX
$ git bisect bad XXX

然后就不停地测试git告诉你的commit，标记为bad or goo]]></description><category></category></item><item><title><![CDATA[sudo reset environment]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6817390</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6817390</guid><author>lynnos</author><pubDate>Sat, 24 Sep 2011 14:45:11 +0800</pubDate><description><![CDATA[when we run sudo command without parameter ,it will reset environment by default.This week I debug script to catch this case. How to  change]]></description><category></category></item><item><title><![CDATA[jenkins如何得到谁启动了build]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6581376</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6581376</guid><author>lynnos</author><pubDate>Sun, 03 Jul 2011 08:44:48 +0800</pubDate><description><![CDATA[在jenkins邮件列表中，有人问到了这个问题，解决的方法是:curl -X POST "$JENKINS_URL/job/$JOB_NAME/$BUILD_NUMBER/api/xml?xpath=//cause/userName/text()"这样的话，你就可以做些发邮件的功能。详见:http://jenkins.361315.n4.nabble.com/Can-I-capture-who-l]]></description><category></category></item><item><title><![CDATA[基于jenkins的持续集成测试]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6567674</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6567674</guid><author>lynnos</author><pubDate>Sat, 25 Jun 2011 18:35:00 +0800</pubDate><description><![CDATA[       测试是持续集成流程中重要的一环，也是区别去传统的软件开发流程中的一个重要的标志。为什么要有持续集成测试呢？1 可以早点发现bug，这就是fix bug代价比较小   可以平滑产品的发布   可以提高产品的质量2 可以让team中的每个人了解产品的质量状态   每天都有持续集成测试的报告发布   开发者也对自己提交的代码测试情况有比较清晰的了解3 可]]></description><category></category></item><item><title><![CDATA[Hudson/Jenkins 启动GUI工具]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6375171</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6375171</guid><author>lynnos</author><pubDate>Sat, 30 Apr 2011 08:22:00 +0800</pubDate><description><![CDATA[Hudson/Jenkins 启动gui 测试工具]]></description><category></category></item><item><title><![CDATA[git如何合并只有两个commit到一个？]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6287135</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6287135</guid><author>lynnos</author><pubDate>Tue, 29 Mar 2011 20:52:00 +0800</pubDate><description><![CDATA[<br />   这个是一个同事让我把他的repository若干个commit变成一个，我用git rebase -i合并到最后发现剩下只有两个commit的时候，git rebase -i不再起作用，于是我求助了git maillist,果然很快有人给出了答案:<br />$ git reset --soft HEAD^1<br />$ git commit --amend<br /> <br />我不得不说git邮件列表是我知道的最棒的一个，尽管曾经我提交了一个git 的patch不合理地被拒，这里很]]></description><category></category></item><item><title><![CDATA[如何得到jenkins build number?]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6281532</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6281532</guid><author>lynnos</author><pubDate>Sun, 27 Mar 2011 15:03:00 +0800</pubDate><description><![CDATA[      在使用jenkins持续集成工具做分布式的时候，在另外一个job B中需要得到job A的build number，尽管通过恒定链接可以得到artifactshttp://jenkinsserver:8080/job/jobname/lastBuild  可以通过读取 http://jenkinsserver:8080/job/jobname/lastBuild/buildNumber 得到另外一个jobA的lastbuild build number]]></description><category></category></item><item><title><![CDATA[Jenkins Windows master和Linux slave]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/6184751</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/6184751</guid><author>lynnos</author><pubDate>Mon, 14 Feb 2011 20:39:00 +0800</pubDate><description><![CDATA[<br />    当我们选择windows 为jenkins master 和Linux slave时候,ssh应该是最佳的方式。由于jenkins有内嵌的ssh client,所以只要在unix slave上安装ssh server，就可以了，在配置的时候，填充host/username/passwd 就可以了。]]></description><category></category></item><item><title><![CDATA[shell脚本搜集]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5933525</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5933525</guid><author>lynnos</author><pubDate>Mon, 11 Oct 2010 15:13:00 +0800</pubDate><description><![CDATA[<br />  常用的脚本搜集<br /> <br />1 在行尾插入字符<br />sed 's/$/input string/'  file]]></description><category></category></item><item><title><![CDATA[hudson用于自动发提醒邮件在代码提交到仓库之后]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5931711</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5931711</guid><author>lynnos</author><pubDate>Sun, 10 Oct 2010 16:41:00 +0800</pubDate><description><![CDATA[<br />前天一位同事希望他们的svn 代码仓库能够有自动发邮件提醒功能在代码提交到仓库之后，其中经典的解决方法是在post-commit上使用svnnotify来实现，这个需要在server端，但是现在有了hudson，其实完全可以在这里实现<br />     新建一个job，然后build trigger选择poll scm<br /> <br />* * * * *<br />然后 在email notification 中自定义。<br /> <br />这就表示每分钟去查询一次repo，如果有]]></description><category></category></item><item><title><![CDATA[如何在windows成功升级hudson]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5926199</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5926199</guid><author>lynnos</author><pubDate>Fri, 08 Oct 2010 03:12:00 +0800</pubDate><description><![CDATA[<br />本来这个事情很简单，只要你安装完成hudson之后，把它设成为windows service，然后再系统管理页面上点击自动升级（如果有新版本放出)，升级完然后点击“Restart when No jobs are running",很奇怪我几乎每次都在这个地方挂了，页面始终停留在"please wait...."。刚刚用了下面的方法似乎可以搞定：不要点击Restart when No jobs are running 按钮当你完成升级之后，到系统管理页面里选择shutdown(准备关机),然后重]]></description><category></category></item><item><title><![CDATA[Hudson备份/移动  ]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5919973</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5919973</guid><author>lynnos</author><pubDate>Sun, 03 Oct 2010 18:43:00 +0800</pubDate><description><![CDATA[<br />     这个对于产品级的应用很重要，因为一旦系统down了，恢复是非常重要的事情，如果能够恢复到原样就最好了。<br />    在hudson中，备份一个job，只要把job目录给备份好然后移动到新的hudson server上就可以了，推而广之，如果想备份整个hudson server,那么备份整个hudson_home就可以了，这样在hudson应用到产品中，就能有好的备份机制可以是工作无缝运行]]></description><category></category></item><item><title><![CDATA[make:  jobserver unavailable: using -j1]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5905935</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5905935</guid><author>lynnos</author><pubDate>Sat, 25 Sep 2010 21:06:00 +0800</pubDate><description><![CDATA[<br />   这个是在使用并行编译的时候发生的，http://www.delorie.com/gnu/docs/make/make_130.html<br /> <br />warning: jobserver unavailable: using -j1. Add `+' to parent make rule.'In order for make processes to communicate, the parent will pass information to the child. Sinc]]></description><category></category></item><item><title><![CDATA[hudson卸载plugin]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5901504</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5901504</guid><author>lynnos</author><pubDate>Thu, 23 Sep 2010 08:27:00 +0800</pubDate><description><![CDATA[<br /> 在hudson plugin管理界面上，可以提供安装,升级，降级(部分)，禁止(disable)，但是没有提供卸载plugin的功能，这点很奇怪，就比如你只能安装软件，却不能卸载，现在的方面只能手动删除stop hudson servicedelete hpi file and corresponding folderstart hudson serivice<br /> <br />我在邮件列表中问了此事，早已经有人提出的feature了http://issues.hudson-ci.org]]></description><category></category></item><item><title><![CDATA[hudson分布式构建step by step]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5888588</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5888588</guid><author>lynnos</author><pubDate>Thu, 16 Sep 2010 15:41:00 +0800</pubDate><description><![CDATA[      我所在的group的产品有Linux,也有Windows,当然我不想为每个产品setup一个Hudson,进行了仔细的研究发现Hudson支持分布式构建,太好了，正好符号我的要求，希望有一个统一的中央界面来管理所有的产品，无论什么平台，无论使用什么source control ,无论build server在哪里，分布式构建一一满足。]]></description><category></category></item><item><title><![CDATA[Avoiding ``No rule to make target ...'' Errors]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5887905</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5887905</guid><author>lynnos</author><pubDate>Thu, 16 Sep 2010 11:19:00 +0800</pubDate><description><![CDATA[<br />  在GNU make手册4.14节 给出一种基本的自动生成依赖关系的rules     %.d: %.c
             @set -e; rm -f $@; /
              $(CC) -M $(CPPFLAGS) $< > $@.$$$$; /
              sed 's,/($*/)/.o[ :]*,/1.o $@ : ,g' < $@.$$$$ > $@; /
              rm -f $@.$$$$大部分情况下这个都是可以]]></description><category></category></item><item><title><![CDATA[备份git代码仓库]]></title><link>https://blog.youkuaiyun.com/lynnos/article/details/5862641</link><guid>https://blog.youkuaiyun.com/lynnos/article/details/5862641</guid><author>lynnos</author><pubDate>Sat, 04 Sep 2010 08:16:00 +0800</pubDate><description><![CDATA[<br />    在使用任何一种代码管理工具的时候，备份都是一件非常重要的事情。我就曾经遇到过真实的案例，我们的中央代码仓库由于脚本的bug被删除了，我们就迅速地完成了无缝恢复，这都感谢伟大的git. 备份git仅用寥寥几行代码就可以做到<br />git clone --mirror $(url}/{repo}
pushd ${repo}
git remote update
popd <br />然后你可以使用cron 去按时update就可以了]]></description><category></category></item></channel></rss>