jenkins 打包 php 发送到远程服务器

思路:

  1. 从git上下载到工作空间(workspace)
  2. 通过phing打包
  3. 通过ssh发送压缩包
  4. 服务器解压缩包

git配置

前文又讲不多赘述

phing配置

  • 在你的jenkins服务器上,安装php,由于之前镜像版本不对,安装php很麻烦,请选择改版本jenkins

image.png

  • 安装php
apt-get install php
复制代码
  • 安装phing
pear channel-discover pear.phing.info
pear install --alldeps phing/phing
复制代码
  • 测试
phing -v
复制代码

build.xml配置

  • 在你的项目目录下,加入build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="api" default="build">
        <target name="build" depends="make_runtime,check,tar"/>
        <property name="version-m"  value="1.1" />
        <property name="version"    value="1.1.0" />
        <property name="stability"  value="stable" />
        <property name="releasenotes" value="" />
        <property name="tarfile"     value="${phing.project.name}.${buildnumber}.${buildid}.tar.gz" />
        <property name="pkgfile"     value="${phing.project.name}.${version}.tgz" />
        <property name="distfile"    value="dist/${tarfile}" />
        <property name="tests.dir" value="test" />
        <fileset id="api.tar.gz" dir=".">
            <include name="test/**"/>
            <include name="*.php"/>
            <include name="*.xml"/>
        </fileset>
        <target name="make_runtime">
                <mkdir dir="${project.basedir}/Runtime" />
                <mkdir dir="${project.basedir}/build/logs" />
                <mkdir dir="${project.basedir}/build/pdepend" />
                <mkdir dir="${project.basedir}/build/code-browser" />
        </target>

        <target name="check" description="Check variables" >
            <fail unless="version" message="Version not defined!" />
            <fail unless="buildnumber" message="buildnumber not defined!" />
            <fail unless="buildid" message="buildid not defined!" />
            <delete dir="dist" failonerror="false" />
            <mkdir dir="dist" />
        </target>

        <target name="tar" depends="check" description="Create tar file for release">
            <echo msg="Creating distribution tar for ${phing.project.name} ${version}"/>
            <delete file="${distfile}" failonerror="false"/>
            <tar destfile="${distfile}" compression="gzip">
                <fileset refid="api.tar.gz"/>
            </tar>
        </target>
</project>
复制代码
  • phing build.xml 官方文档

www.phing.info/guide/chunk…

jenkins配置

  • Invoke Phing targets

image.png

  • Send files or execute commands over SSH

image.png

  • 代码如下
Source files:dist/api.${BUILD_NUMBER}.${BUILD_ID}.tar.gz 
Remove prefix:dist/ 
Remote directory: /home/data/ 
Exec command: 
mkdir -p /home/data/ 
mkdir-p /home/www/ 
cd /home/data/ 
tar -zxf api.${BUILD_NUMBER}.${BUILD_ID}.tar.gz -C /home/www/ 
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享