Generic build- and deployment targets

3.0.0 2021-04-29 09:54 UTC

README

Introduction

This library provides generic ANT build- and deployment targets useful to build libraries for appserver.io.

The targets are mostly used for enabling continous integration with Travis-CI. The following targets are provied out-of-the-box with a default configuration:

  • clean (Deletes the directory with the generated artefacts)
  • prepare (Prepares the directory to temporarily store generated artefacts)
  • copy (Copies the sources to the temporary directory)
  • deploy (Copies the sources to the deploy directory)
  • pdepend (Runs the PHPDepend tool and generats a graphs)
  • phpcpd (Runs the copy and paste detection)
  • phpcs (Runs the code sniffer and generates a report)
  • phploc (Generate phploc.csv)
  • phpmd (Runs the PHP Mess detector tool)
  • build (Builds the library)
  • run-tests (Runs the PHPUnit tests on Travis-CI and generates a report)

All artefacts that'll be generated during the one of the targets runtime will be stored in a temporarily generated directory.

Installation

If you want to install the generic build- and deployment targets to use with your library, you do this by add

{
    "require": {
        "appserver-io/build": "dev-master"
    },
}

to your composer.json and invoke composer update in your project.

Usage

After installation you can import the XML file delivered with the library into your local ANT build file with:

<?xml version="1.0"?>
<!DOCTYPE project>
<project name="composer/package" basedir=".">
    
    <!-- initialize ENV variable -->
    <property environment="env" />
    
    <!-- initialize the library specific properties -->
    <property name="codepool" value="vendor"/>
    
    <!-- initialize the directory where we can find the real build files -->
    <property name="vendor.dir" value ="${basedir}/${codepool}" />
    <property name="build.dir" value="${vendor.dir}/appserver-io/build" />
    
    <!-- ==================================================================== -->
    <!-- Import the common build configuration file                           -->
    <!-- ==================================================================== -->
    <import file="${build.dir}/common.xml" optional="true"/>

</project>