>
钥匙要点- 要在詹金斯(Jenkins)准备一个PHP项目,建议使用PHPUNIT和PHP-CODESNIFFER等工具。这可以通过在jenkins服务器上全球安装软件包或在composer.json文件中定义依赖项来实现。
- >
Jenkins Server上使用
ANT来自动化软件构建过程。目标是在配置文件中定义的,ANT根据这些目标执行操作。 build.xml文件被添加到项目中,以使ANT在Jenkins Server上执行任务。 > > build.xml文件可能需要修改以适合特定项目。这包括定义可以找到诸如Phpunit之类的工具并清理多个命令以正确匹配该项目的位置。 - > 可能需要创建 新目标,以确保所有质量检查工具都会按预期运行。这包括处理正确设置项目的要求,例如由作曲家和鲍尔(Composer and Bower)监管的依赖项。
- 准备项目后,有必要在詹金斯(Jenkins)中创建一个项目并进行配置。这些步骤包括在Jenkins中安装GitHub插件,创建一个新项目以及配置源管理。然后可以通过单击项目侧菜单中的“立即构建”来开始构建。
> - 准备作曲家
- >我们将首先准备我们的项目。我们可以使用塞巴斯蒂安·伯格曼(Sebastian Bergmann)提供的项目,但这是一个基本的项目,在詹金斯(Jenkins)中不会出现问题。在本文中,我们将使用另一个存储库,在这些存储库中我们将不得不克服一些障碍。我们将使用jumph的叉子作为我们的基础。
>
如果您想更多地了解每个软件包的作用,请查看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> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></target></span></span></span>$ {toolsdir}和$ {基础}是2个变量。根据它们的配置方式,它们可能会影响整个命令行输出
<span><span><span><target> 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>></target></span> </span> <span><span><span><exec> executable<span>="${toolsdir}phploc"</span>></exec></span> </span> <span><span><span><arg> value<span>="--count-tests"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-csv"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.csv"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/src"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/tests"</span>/></arg></span> </span> <span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span></span></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> name<span>="build"</span> depends<span>="prepare,lint,phploc-ci,pdepend,phpmd-ci,phpcs-ci,phpcpd-ci,phpunit,phpdox"</span> description<span>=""</span>/></target></span></span></span>下一步是作曲家和鲍尔。我决定通过执行以下命令在Jenkins服务器上安装它们。
>
>
[ed:请注意,如果您在托管在Windows上的VM中运行所有这些,Bowerphp将比Bower更好。现在,让我们为作曲家创建一个目标。
<span><span><span><target> 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>></target></span> </span> <span><span><span><exec> executable<span>="${toolsdir}phploc"</span>></exec></span> </span> <span><span><span><arg> value<span>="--count-tests"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-csv"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.csv"</span>/></arg></span> </span> <span><span><span><arg> value<span>="--log-xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/build/logs/phploc.xml"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/src"</span>/></arg></span> </span> <span><span><span><arg> path<span>="${basedir}/tests"</span>/></arg></span> </span> <span><span><span></span>></span> </span><span><span><span></span>></span></span></span></span></span></span></span></span></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> name<span>="toolsdir"</span> value<span>="bin/"</span> /></property></span></span></span>
也许您对我们所做的所有更改感到有些困惑。为了方便起见,这是与我们上面描述的所有更改有关的合并的直接链接。
在Jenkins中创建项目
我们的项目已经准备好了。让我们回到詹金斯并进行配置。这将是本文中最简单的部分。<span><span><span><arg> path<span>="${basedir}/tests"</span>/></arg></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项目有什么好处? PHP项目。它可以自动化构建,测试和部署PHP应用程序的过程,从而可以节省大量时间和精力。它还有助于确保您的代码始终处于可部署状态,从而可以提高软件的质量。此外,詹金斯(Jenkins)支持持续集成和连续交付,这可以帮助您更快,更频繁地向用户提供更新。
我如何使用jenkins来自动化我的PHP项目? Jenkins可以通过与各种测试工具集成来自动为您的PHP项目自动化测试。例如,您可以使用PHPUNIT插件来运行单元测试,也可以使用Selenium插件来运行功能测试。您只需要在Jenkins作业中配置这些插件,每次您构建项目时,它们都会自动运行测试。这可以帮助尽早捕获错误,并确保您的代码始终处于良好状态。
我可以将jenkins与其他编程语言一起使用,除了PHP?
>>如何使用Jenkins部署我的PHP应用程序?例如,您可以使用SSH插件将应用程序部署到远程服务器或Docker插件中,以将应用程序作为Docker容器部署。您只需要在詹金斯(Jenkins)作业中配置这些插件,每次构建项目时,它们都会自动部署您的应用程序。
>
>什么是连续集成,詹金斯如何支持它?集成是一种软件开发实践,开发人员通常每天多次将代码集成到共享存储库中。这有助于尽早解决集成问题,并减少提供软件更新所需的时间和精力。詹金斯(Jenkins)每次提交对存储库的更改时都可以自动化构建,测试和部署软件的过程来支持持续集成。
>>什么是连续交付,詹金斯如何支持它?交付是一种软件开发实践,在该实践中,代码更改自动构建,测试和准备以释放生产。它旨在使发行的风险较小,更频繁。 Jenkins通过自动化整个软件发布过程(从集成和测试到交付和部署)来支持连续交付。
我可以使用带有Git的Jenkins?这使您每次推动更改GIT存储库都可以自动构建,测试和部署软件。您可以通过安装git插件并在git存储库中设置webhook来配置此功能,以触发jenkins build nener nens the Change。詹金斯(Jenkins)提供了几种工具来帮助您解决问题。这包括构建日志,可以提供有关构建过程中发生的情况以及系统日志的详细信息,这些信息可以提供有关Jenkins Server整体操作的信息。您还可以使用Jenkins CLI或REST API与Jenkins Server进行交互并诊断问题。
>>如何保护我的Jenkins Server?
>确保Jenkins Server确保您的Jenkins Server涉及多个步骤。首先,您应该确保詹金斯服务器正在运行最新版本,因为这将包括最新的安全补丁。您还应该配置Jenkins使用HTTP,它将加密您的Jenkins Server和您的用户之间的通信。此外,您应该使用身份验证和授权机制限制对Jenkins服务器的访问,并将Jenkins用户的权限限制为仅执行其任务所需的内容。以上是在詹金斯准备和建立PHP项目的详细内容。更多信息请关注PHP中文网其他相关文章!

长URL(通常用关键字和跟踪参数都混乱)可以阻止访问者。 URL缩短脚本提供了解决方案,创建了简洁的链接,非常适合社交媒体和其他平台。 这些脚本对于单个网站很有价值

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

这是有关用Laravel后端构建React应用程序的系列的第二个也是最后一部分。在该系列的第一部分中,我们使用Laravel为基本的产品上市应用程序创建了一个RESTFUL API。在本教程中,我们将成为开发人员

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

2025年的PHP景观调查调查了当前的PHP发展趋势。 它探讨了框架用法,部署方法和挑战,旨在为开发人员和企业提供见解。 该调查预计现代PHP Versio的增长

在本文中,我们将在Laravel Web框架中探索通知系统。 Laravel中的通知系统使您可以通过不同渠道向用户发送通知。今天,我们将讨论您如何发送通知OV


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)