>
钥匙要点如果您想更多地了解每个软件包的作用,请查看Bruno关于PHP QA工具的文章。
准备蚂蚁>在我们的Jenkins服务器上,我们将使用ANT。因此,如果尚未在服务器上安装ANT,请确保通过运行以下命令来确保它是。
"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
>
>运行蚂蚁,您可以在命令行上启动蚂蚁构建。这意味着蚂蚁将运行构建目标。如果没有给出任何参数,ANT将按照配置中指示的默认值来运行目标,在这种情况下,这也是构建的。>让我们仔细看看构建目标。
>目标是空的,但是,它取决于许多其他目标。它将首先运行准备目标,然后继续使用皮棉目标直到运行每个目标。 让我们看一下phploc-CI目标。
>sudo apt-get install ant
这个目标很容易理解。您会注意到这取决于准备目标。由于这已经由构建目标运行,因此不会再运行。然后,我们获得可执行文件,即Phploc,将由ANT执行。您较早地使用作曲家安装了此功能。最后,我们将看到phploc的特定参数。 ANT将基于此目标配置运行以下命令行输入。
><span><span><span><target</span> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></span></span>$ {toolsdir}和$ {基础}是2个变量。根据它们的配置方式,它们可能会影响整个命令行输出
<span><span><span><target</span> name<span>="phploc-ci"</span> depends<span>="prepare"</span> description<span>="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment."</span>></span> </span> <span><span><span><exec</span> executable<span>="${toolsdir}phploc"</span>></span> </span> <span><span><span><arg</span> value<span>="--count-tests"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-csv"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.csv"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/src"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/tests"</span>/></span> </span> <span><span><span></exec</span>></span> </span><span><span><span></target</span>></span></span>
> 如上所述,如果您只想触发此目标,则应在命令行上运行ANT PHPLOC-CI。 请注意,此phploc命令将输出phploc.csv文件和phploc.xml文件。例如,詹金斯(Jenkins)安装的插件将读取这些文件并将其转换为图形。在下一篇文章中,我们将更深入地研究这个主题。
>如果您浏览整个build.xml文件,您会注意到它取决于某些工具的其他3个单独的配置文件;构建/phpmd.xml,构建/phpdox.xml并构建/phpunit.xml。这些配置文件由实际工具请求。要了解更多信息,请查看他们各自的文档。
请注意,phpunit.xml受到Symfony2的原始phpunit.xml.dist文件的启发,因为我们正在处理Symfony2项目。更改build.xml文件 >那么,我们完成了吗?不幸的是,还没有。 build.xml文件非常通用,并且不完全适合我们的项目。首先,我们需要定义可以找到诸如Phpunit之类的工具。我们的作曲家将它们自动安装在我们项目根源的bin目录中。我们需要将ToolsDir属性更改为正确的值。
>"require-dev": { "squizlabs/php_codesniffer": "~1.5.*", "phpmd/phpmd": "~2.1.*", "sebastian/phpcpd": "~2.0.*", "pdepend/pdepend": "~2.0.*", "phploc/phploc": "~2.0.*", "phpunit/phpunit": "~4.3.*", "theseer/phpdox": "~0.7.*", },
>我们还可以清理几个命令。当前的build.xml文件定义了我们一方面具有SRC目录,另一方面是测试目录。由于Symfony2在SRC目录中包含测试,因此我们可以删除像此示例一样的测试目录的所有路径。
sudo apt-get install ant>
尽管不是必需的,但我更喜欢保持所有内容尽可能清洁,以便它正确匹配我们的项目。 最后,在build.xml文件中所示的phpdox的当前配置在我的情况下与最新版本不起作用。我更改了下面的目标,因此它正确地读取了我们的配置文件。>
创建新目标已经设置了所有内容,以确保我们所有的QA工具都按预期运行。但是,我们的项目更加复杂。如果您分析了存储库,您会注意到依赖关系由作曲家和Bower调节。由于这是一个Symfony项目,我们还需要一个默认参数。yml文件。我们需要处理这些要求,以便能够在Jenkins上正确设置该项目。
>让我们从parameters.yml文件开始。我们可以使用参数的默认内容。我们首先创建一个名为Copy-Parameters的新目标,该目标执行CP命令。<span><span><span><target</span> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></span></span>下一步是作曲家和鲍尔。我决定通过执行以下命令在Jenkins服务器上安装它们。
>
[ed:请注意,如果您在托管在Windows上的VM中运行所有这些,Bowerphp将比Bower更好。现在,让我们为作曲家创建一个目标。
<span><span><span><target</span> name<span>="phploc-ci"</span> depends<span>="prepare"</span> description<span>="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment."</span>></span> </span> <span><span><span><exec</span> executable<span>="${toolsdir}phploc"</span>></span> </span> <span><span><span><arg</span> value<span>="--count-tests"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-csv"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.csv"</span>/></span> </span> <span><span><span><arg</span> value<span>="--log-xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/build/logs/phploc.xml"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/src"</span>/></span> </span> <span><span><span><arg</span> path<span>="${basedir}/tests"</span>/></span> </span> <span><span><span></exec</span>></span> </span><span><span><span></target</span>></span></span>
>将SYMFONY_ENV设置为测试很重要,因此Symfony知道必须清除其测试高速缓存目录。
phploc --count-tests --log-csv /build/logs/phploc.csv --log-xml /build/logs/phploc.xml /src /tests
我们需要做的最后一件事是确保执行这些目标。因此,我们更改构建目标,并按照要执行它们的顺序添加3个新创建的目标。 > git
我们需要做的最后一件事是准备.gitignore文件。如果您想在本地计算机上运行ANT目标,则您的构建目录将填充您不想将其投入存储库的日志文件。因此,我们将以下行添加到.gitignore文件中。
><span><span><span><property</span> name<span>="toolsdir"</span> value<span>="bin/"</span> /></span></span>
也许您对我们所做的所有更改感到有些困惑。为了方便起见,这是与我们上面描述的所有更改有关的合并的直接链接。
在Jenkins中创建项目
我们的项目已经准备好了。让我们回到詹金斯并进行配置。这将是本文中最简单的部分。<span><span><span><arg</span> path<span>="${basedir}/tests"</span>/></span></span>>
由于我们的项目位于Github上,因此建议您在Jenkins中安装GitHub插件。如果您使用自己的Git服务器,则只需安装常规的Git插件即可。如果您不确定如何安装插件,请检查上一篇文章。
>>返回概述时,必须在左菜单中单击新项目。作为项目名称,我们填写Jumph。接下来,我们选择“选项”复制现有项目,然后填写PHP-Template作为要复制的项目。
我们要做的最后一件事是选择源管理。就我们而言,这是git。接下来,您必须填写存储库链接。如果您使用HTTPS链接,则无需提供任何其他凭据。我们可以决定应该建立哪些分支,但是由于我们只有一个主分支,因此我们将保持原样。
配置完成了 - 非常简单,因为我们使用了预定义的模板。如果向下滚动,您将准确看到为我们配置的模板。继续在继续之前保存您的配置。
启动构建
如果您单击构建本身,您将获得一个新的侧菜单,其中包含此特定构建的选项。单击控制台输出以确切查看发生了什么。就我而言,由于缺少某些PHP扩展而导致第一个构建失败。
>控制台输出非常方便,以找出为什么您的项目失败。就我而言,我只需要运行sudo apt-get安装php5-curl php5-xsl php5-sqlite php5-xdebug即可安装一些所需的软件包。我花了几个构建才能弄清楚缺少什么,但是随着控制台输出,很容易弄清楚出了什么问题。最后,这就是我的构建历史的样子。
红色意味着构建失败,蓝色意味着构建成功。失败可能意味着我们以前看到的配置出了问题,但这也可能意味着单位测试失败了。如果您再次打开build.xml文件,您会注意到某些目标获得了一个名为failonError的属性,该属性设置为true。如果出于某种原因,该目标失败了,ANT将自动停止并将其报告为损坏的构建。
>也许当建造成功时,您期望一个绿球,而不是蓝色球。有一个插件可以显示绿球,而不是蓝色球。 结论
在本文中,我们为成功的构建而努力。我们必须准备我们的项目并在詹金斯(Jenkins)中创建一份工作。最终,我们不得不调试我们的第一个构建,因为我们忘记了安装一些库。>常见问题(常见问题解答)有关使用Jenkins
建立PHP项目的问题(常见问题解答)>如何为我的PHP项目设置Jenkins?首先,您需要在服务器上安装Jenkins。您可以从Jenkins官方网站下载并遵循安装说明。安装后,您需要配置Jenkins与PHP一起使用。这涉及安装必要的插件,例如PHP插件,Git插件以及其他插件,具体取决于您的项目要求。安装插件后,您可以创建一个新的Jenkins作业,并将其配置为构建PHP项目。您将需要指定项目源代码,构建触发器和构建步骤的位置。
我可以将jenkins与其他编程语言一起使用,除了PHP?
>什么是连续集成,詹金斯如何支持它?集成是一种软件开发实践,开发人员通常每天多次将代码集成到共享存储库中。这有助于尽早解决集成问题,并减少提供软件更新所需的时间和精力。詹金斯(Jenkins)每次提交对存储库的更改时都可以自动化构建,测试和部署软件的过程来支持持续集成。
>我可以使用带有Git的Jenkins?这使您每次推动更改GIT存储库都可以自动构建,测试和部署软件。您可以通过安装git插件并在git存储库中设置webhook来配置此功能,以触发jenkins build nener nens the Change。詹金斯(Jenkins)提供了几种工具来帮助您解决问题。这包括构建日志,可以提供有关构建过程中发生的情况以及系统日志的详细信息,这些信息可以提供有关Jenkins Server整体操作的信息。您还可以使用Jenkins CLI或REST API与Jenkins Server进行交互并诊断问题。
>以上是在詹金斯准备和建立PHP项目的详细内容。更多信息请关注PHP中文网其他相关文章!