这将是一篇很长的帖子,因为涉及的内容很多,但它很管用:
你需要:
- 蚂蚁
-
Git Publisher 插件
-
Ant 和 phpunit 需要在您的 PATH 中
第 1 步:配置您的项目
在您的 Jenkins 中,将您的项目配置为 Git 选项下的“轮询 SCM”。将“计划”留空。在“要构建的分支”下,将其设置为您要从中构建发布包的分支。
参考:
第 2 步:为每个构建运行 ant
向“调用 Ant”添加构建步骤
如果您还没有使用 Ant,请在项目根目录中创建一个 build.xml 文件,将其添加到 Git 并具有以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<project default="full-build">
<property name="phpunit" value="phpunit"/>
<target name="full-build"
depends="phpunit-unittests,-check-failure"
description="runs the tests"/>
<target name="phpunit-unittests"
unless="phpunit-unittests.done"
description="Run unit tests with PHPUnit">
<exec executable="cmd" failonerror="true" resultproperty="result.phpunit" taskname="phpunit-unittests">
<arg value="/c"/>
<arg value="${phpunit}"/>
<arg value="--configuration"/>
<arg path="${basedir}/phpunit.xml"/>
<arg value="--testsuite=Unit"/>
</exec>
<property name="phpunit-unittests.done" value="true"/>
</target>
<target name="-check-failure">
<fail message="PHPUnit did not finish successfully">
<condition>
<not>
<equals arg1="${result.phpunit}" arg2="0"/>
</not>
</condition>
</fail>
</target>
</project>
这将在调用 Ant 任务时运行所有单元测试,现在为每次构建项目时设置。
然后,安装 Git Publisher 工具。配置如下:
这会在成功构建时创建一个新的发布标签。稍后您将使用它来将版本发布到最终位置。 注意: Git Publisher 提供了不同的变量供使用,提交哈希,用户等,所以使用你想要的。我坚持使用 v1.1.BUILD 的增量标签,因为它更标准一些。
最后,您需要添加一个 Git 挂钩,该挂钩将在从任何位置提交/推送时触发构建。
导航到您的存储库文件夹,并在其中的 'hooks' 目录中。
创建一个名为“post-receive”的新文件(您将在其中看到示例;覆盖此文件)。将以下内容放入:
#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "master" == "$branch" ]; then
curl http://YOUR_JENKINS_URL:8080/git/notifyCommit?url=YOUR_GIT_REPOSITORY_URL
fi
done
这应该可以很好地完成工作。我省略了您如何实际发布项目的实施细节,因为每个人的做法都不同。可以选择将 FTP 文件传输到某个位置,等等。我个人进入应用程序所在的文件夹并检查新创建的标签 - 一个单行命令。适合您的环境。
其他我已经省略但你会发现有用的东西 - Ant 构建任务实际上可以做任何事情 - 在我的中,我运行 composer 来安装依赖项,运行 bower,运行 grunt,进行语法检查,编码标准检查,启动selenium 和运行 web 测试,以及许多其他的东西。它是自动化整个项目部署的工具的完美组合。