IT星球论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 171|回复: 0

php-持续继承环境的搭建:jenkins

[复制链接]

1996

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2016-3-7 17:55:04 |显示全部楼层
PHP-持续继承环境的搭建:jenkins
                                                一直纠结于我们团队的代码风格不统一,基本上每次开会都会提到,但是效果很不理想,每次review代码的时候,总是会发现一些问题,有些甚至是看不下去的风格。
无意中看到了持续集成这个东西,一开始以为会很麻烦(事实上还真的是很麻烦),之前也经常在别的技术牛人那边说这个是个好东西,可惜没有人给我玩过,于是刚好乘这机会,就啃嗤啃嗤的研究起来了。
不研究不知道,一研究才发现这个还真是好东西,很多个自动化的工具都可以集成在一个环境下面跑。
这里我找到了一个开源的持续继承环境:Jenkins
下面就来介绍一下这个软件的安装,ubuntu 11.10环境为例
一、安装Jenkins
去官网下载,安装,很简单,他自己集成了一个Java的环境和服务器,一个包搞定问题
二、选择需要的集成工具
这部分之前需要先扫盲一下,先看下面两篇文章:
PHP开发必备PHP持续集成工具介绍(上)PHP开发必备PHP持续集成工具介绍(下)这两篇文章主要介绍了php的一些工具,主要是:
PHPUnit                 (php 单元测试工具)PHP_CodeSniffer     (php 风格检查工具)当然还有IT论坛的工具,但是研究了一下,发现用处不是很大,也就不介绍了
三、安装集成工具
1、安装: ANT
sudo apt-get install ant
2、安装:pear
sudo apt-get install php-pear
3、安装:xdebug
4、安装:phpunit
sudo pear channel-discover pear.phpunit.de
sudo pear install phpunit/PHPUnit
5、安装:PHP_CodeSniffer
sudo pear install PHP_CodeSniffer
四、创建任务
  • 下载模版配置:cd $JENKINS_HOME/jobsgit clone git://github.com/sebastianbergmann/php-jenkins-template.git php-templatechown -R jenkins:nogroup php-template/
  • 重启Jenkins CLI:java -jar jenkins-cli.jar -s http://localhost:8080 reload-configuration
  • 新建任务.
  • 输入任务名称.
  • 选择从已有任务拷贝
  • 取消”Disable Build” 选项.
  • 填写相关信息.
  • 填写相关svn信息.
  • 保存
下面是项目build.xml文件(目前我们使用的配置)
==========build.xml============
<?xml version=”2.0″ encoding=”UTF-8″?>
<project name=”name-of-project” default=”build”>
<target name=”build”
depends=”prepare,lint,phploc,phpcs-ci,phpunit,phpcb”/>
<target name=”build-parallel”
depends=”prepare,lint,tools-parallel,phpunit,phpcb”/>
<target name=”tools-parallel”
description=”Run tools in parallel”>
<parallel threadCount=”2″>
<antcall target=”phpcs-ci”/>
<antcall target=”phploc”/>
</parallel>
</target>
<target name=”clean” description=”Cleanup build artifacts”>
<delete dir=”${basedir}/build/api”/>
<delete dir=”${basedir}/build/code-browser”/>
<delete dir=”${basedir}/build/coverage”/>
<delete dir=”${basedir}/build/logs”/>
</target>
<target name=”prepare” depends=”clean”
description=”Prepare for build”>
<mkdir dir=”${basedir}/build/api”/>
<mkdir dir=”${basedir}/build/code-browser”/>
<mkdir dir=”${basedir}/build/coverage”/>
<mkdir dir=”${basedir}/build/logs”/>
</target>
<target name=”lint”>
<apply executable=”php” failonerror=”true”>
<arg value=”-l” />
<fileset dir=”${basedir}”>
<include name=”**/*.php” />
<modified />
</fileset>
<fileset dir=”${basedir}/_test”>
<include name=”**/*.php” />
<modified />
</fileset>
</apply>
</target>
<target name=”phploc” description=”Measure project size using PHPLOC”>
<exec executable=”phploc”>
<arg value=”–log-csv” />
<arg value=”${basedir}/build/logs/phploc.csv” />
<arg path=”${basedir}” />
</exec>
</target>
<target name=”phpcs-ci”
description=”Find coding standard violations using PHP_CodeSniffer creating a log file for the continuous integration server”>
<exec executable=”phpcs” output=”/dev/null”>
<arg value=”–report=checkstyle” />
<arg value=”–report-file=${basedir}/build/logs/checkstyle.xml” />
<arg value=”–standard=MyStandard” />
<arg value=”–ignore=${basedir}/wind,${basedir}/_test,${basedir}/configs,${basedir}/www,${basedir}/data,${basedir}/library/utility/safehtml,${basedir}/library/utility/soap” />
<arg path=”${basedir}” />
</exec>
</target>
============end===============

phpunit的配置
============phpunit.xml=============
<?xml version=”1.0″ encoding=”UTF-8″?>
<phpunit bootstrap=”_test/bootstrap.php” backupGlobals=”false” backupStaticAttributes=”false” strict=”true” verbose=”true”>
<testsuites>
<testsuite name=”BankAccount”>
<directory suffix=”Test.php”>_test/market</directory>
</testsuite>
</testsuites>
<logging>
<log type=”coverage-clover” target=”build/logs/clover.xml” />
<log type=”coverage-html” target=”build/coverage” title=”BankAccount” />
<log type=”junit” target=”build/logs/junit.xml” logIncompleteSkipped=”false” />
</logging>
</phpunit>
============end=================
进入jenkins的任务目录,一般是在:/var/lib/jenkins/jobs/
进入指定的job/workspace目录
替换目录中的的build.xml和phpunit.xml文件
重启jenkins
搞定!!!

http://blog.windcache.com/archives/5
php-持续继承环境的搭建:jenkins
该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部