当前位置: 首页 > 编程笔记 >

使用Phing从SVN部署PHP项目

刘子实
2023-03-14
本文向大家介绍使用Phing从SVN部署PHP项目,包括了使用Phing从SVN部署PHP项目的使用技巧和注意事项,需要的朋友参考一下

使用Phing进行自动构建使部署到服务器变得轻松而轻松,如果您使用SVN作为源代码控制系统,则可以轻松地从存储库直接部署到Web服务器。

要允许Phing利用SVN服务器,必须首先安装VersionControl_SVN pear库。尽管这是Alpha版本,但我已经使用了很多,没有任何问题。唯一的事情是,如果要安装它,则需要指定pear的版本号,如下所示:

pear install VersionControl_SVN-0.3.4

要使Phing从SVN存储库中导出,可以使用svnexport任务。以下构建文件设置了一些参数(供此任务使用),运行一个目标以删除现有的导出,然后运行一个目标,该目标从我们已设置的SVN存储库中导出。

<?xml version="1.0"?>
<project name="build" default="main">
 
    <property name="exportdir"  value="./svn_export/" />
    <property name="svnpath" value="/usr/bin/svn" />
    <property name="username" value="username" />
    <property name="password" value="password" />
    <property name="repo" value="http://www.yoursvnserver.com/yoursvnrepo" />
    <property name="revision" value="HEAD" />
 
    <target name="main">
        <phingcall target="svnexport" />  
    </target>
 
    <target name="clean">
        <delete dir="${exportdir}"/>
    </target>  
 
    <target name="svnexport" depends="clean">
        <svnexport
            repositoryurl="${repo}"
            todir="${exportdir}"
            svnpath="${svnpath}"
            username="${username}"
            password="${password}"
            nocache="true"
            revision="${revision}"
        />
    </target>
</project>

如果保存此构建文件,则svnexport.xml可以使用以下命令运行它:

phing -f svnexport.xml

svnexport任务可用的大多数参数都是自解释性的。Nocahce是唯一可能不会立即显而易见的,它将缓存请求之间的连接凭据。另外,如果要使用匿名SVN服务器,则只需忽略用户名和密码参数即可。在Phing站点上svnexport上有可用的文档。

如果您发现(像我一样)该脚本存在并且给出了一个错误,该错误说明了不存在的svnexport任务,请确保您的Phing版本是最新的,并且应该可以解决该问题。这可以通过运行pear升级或pear升级phing来完成。

对于奖励积分,我们可以仅提取所需的修订,而不必总是使用HEAD进行默认设置或每次我们要更改构建文件时都必须对其进行编辑。这可以通过在运行时将参数传递给Phing来完成,也可以通过在运行构建文件时使用propertyprompt任务向用户询问修订号来完成。

您可以在运行时通过调用Phing时使用-D标志来更改修订版参数。以下将版本参数设置为2。

phing -Drevision=2 -f svnexport.xml

然后,您可以在构建文件中添加echo语句,以便打印出从命令行接收到的修订。

    <target name="main">
        <echo>Extracting revision ${revision}</echo>   
        <phingcall target="svnexport" />  
    </target>

要使用propertyprompt任务,只需将其添加到svnexport任务上方。在下面的示例中,我更改了我的主要目标,以在运行其他任何操作之前添加propertyprompt任务。

    <target name="main">
        <propertyprompt propertyName="revision" defaultValue="HEAD" promptText="Enter revision number" />
        <echo>Extracting revision ${revision}</echo>   
        <phingcall target="svnexport" />  
    </target>

当您像以前一样运行构建文件时,脚本将停止,并在屏幕上显示提示,询问您要提取的修订号。

Enter revision number [HEAD] ?

导出后,您可以运行其他目标以将其移至FTP服务器或使用它进行任何操作,完成操作后甚至可以清理导出目录。在构建的应用程序中放置一个包含修订信息的小文件也是一个想法,这样您就可以检查用于制作该应用程序的修订版本。

Phing还可以使用其他版本控制系统(例如CVS和Git),因此,如果您不使用SVN,则始终可以修改脚本以包括您选择的存储库系统。

 类似资料:
  • 我在GitHub上有一个简单的php项目。并且我想建立与竹子的持续集成。 第一步:我已经用“默认作业”设置了“计划”。“默认作业”只有一个任务:源代码签出。 步骤1.1:运行构建之后,我在/users/serhiit/bamboo-agent-home/xml-data/build-dir/locpr-web-job1中看到了源代码。 步骤2:我还设置了“部署”,只有一个任务:清理工作目录任务。

  • 今天的目标是完成一个 Python Web 项目的线上部署,我们使用最新的 Django 项目搭建一个简易的 Web 工程,然后基于 Nginx 服务部署该 Python Web 项目。 1. 前期准备 1.1 安装虚拟环境pyenv 首先要知道,使用虚拟环境逐渐成了 python 项目开发中的一种主流方式。pyenv 可以帮我们生成多个 python 的虚拟环境,这样我可以在同一台机器上使用 p

  • Phing是一个 PHP 实现的项目构建工具。按照官方文档的说法,你可以用它做任何传统的构建(build/make)工具(比如 Java 的 Ant,GNU Make 等)能做的所有工作。 Phing 是一个基于 Apache Ant 的项目代码构建系统.你可以用她做传统的构建系统能做的任何事情,比如 GNU make,并且 Phing 使用简单的 XML 构建文件和可扩展的”任务”使之成为易于使用和极具可扩展性的框架.

  • 2. 项目部署 本章主要介绍如何部署Camel。 首先,介绍Vagrant这个虚拟机工具。借助Vagrant,我们可以保证本地开发及测试环境与线上环境的一致。 随后介绍slb-admin的部署。管理端本地也要安装Dengine,用以测试Nginx配置文件的语法是否正确。此外,还需要部署数据库:MySQL及MongoDB。 最后介绍Nginx服务器的部署。我们可以根据具体需求部署Nginx集群,每台

  • 描述 本文档提供了 3 种部署方式,对应 Jboot 里的 3 种打包方式。 通过 脚本 运行 在 打包方式 文档中,我们可以把项目打包成一个 .zip 的压缩包项目,里面带有 jboot.sh (和 jboot.bat) 执行脚本, 只需要我们解压 .zip 压缩文件,通过如下命令就可以对 jboot 项目进行启动和停止。 # 启动 ./jboot.sh start # 停止 ./jboot.

  • 部署中,你可以先构建打包生成环境代码,再启动服务。因此,构建和启动分为下面两条命令: next build next start 例如,使用now去部署package.json配置文件如下: { "name": "my-app", "dependencies": { "next": "latest" }, "scripts": { "dev": "next",