forked from appserver-io/appserver
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request appserver-io#1060 from wagnert/master
Use Robo for build process
- Loading branch information
Showing
9 changed files
with
308 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,206 @@ | ||
<?php | ||
|
||
/** | ||
* RoboFile.php | ||
* | ||
* NOTICE OF LICENSE | ||
* | ||
* This source file is subject to the Open Software License (OSL 3.0) | ||
* that is available through the world-wide-web at this URL: | ||
* http://opensource.org/licenses/osl-3.0.php | ||
* | ||
* PHP version 5 | ||
* | ||
* @author Tim Wagner <tw@appserver.io> | ||
* @copyright 2015 TechDivision GmbH <info@appserver.io> | ||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) | ||
* @link http://github.com/appserver-io/appserver | ||
* @link http://www.appserver.io | ||
*/ | ||
|
||
use Robo\Robo; | ||
use AppserverIo\RoboTasks\AbstractRoboFile; | ||
use AppserverIo\RoboTasks\ConfigurationKeys; | ||
|
||
/** | ||
* Defines the available appserver.io build tasks. | ||
* | ||
* @author Tim Wagner <tw@appserver.io> | ||
* @copyright 2015 TechDivision GmbH <info@appserver.io> | ||
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) | ||
* @link http://github.com/appserver-io/appserver | ||
* @link http://www.appserver.io | ||
* | ||
* @SuppressWarnings(PHPMD) | ||
*/ | ||
class RoboFile extends AbstractRoboFile | ||
{ | ||
|
||
/** | ||
* Load the appserver.io base tasks. | ||
* | ||
* @var \AppserverIo\RoboTasks\Base\loadTasks | ||
*/ | ||
use AppserverIo\RoboTasks\Base\loadTasks; | ||
|
||
/** | ||
* Initializes the default configuration. | ||
*/ | ||
public function __construct() | ||
{ | ||
|
||
// call parent constructor | ||
parent::__construct(); | ||
|
||
// initialize the default configuration | ||
Robo::config()->setDefault(sprintf('%s.%s', ConfigurationKeys::DIRS, 'dist'), sprintf('%s/dist', getcwd())); | ||
} | ||
|
||
/** | ||
* Run's the composer install command. | ||
* | ||
* @return void | ||
*/ | ||
public function composerInstall() | ||
{ | ||
// optimize autoloader with custom path | ||
$this->taskComposerInstall() | ||
->preferDist() | ||
->optimizeAutoloader() | ||
->run(); | ||
} | ||
|
||
/** | ||
* Run's the composer update command. | ||
* | ||
* @return void | ||
*/ | ||
public function composerUpdate() | ||
{ | ||
// optimize autoloader with custom path | ||
$this->taskComposerUpdate() | ||
->preferDist() | ||
->optimizeAutoloader() | ||
->run(); | ||
} | ||
|
||
/** | ||
* Clean up the environment for a new build. | ||
* | ||
* @return void | ||
*/ | ||
public function clean() | ||
{ | ||
$this->taskDeleteDir($this->getTargetDir())->run(); | ||
} | ||
|
||
/** | ||
* Prepare's the environment for a new build. | ||
* | ||
* @return void | ||
*/ | ||
public function prepare() | ||
{ | ||
$this->taskFileSystemStack() | ||
->mkdir($this->getDistDir()) | ||
->mkdir($this->getTargetDir()) | ||
->mkdir($this->getReportsDir()) | ||
->run(); | ||
} | ||
|
||
/** | ||
* Run's the PHPMD. | ||
* | ||
* @return void | ||
*/ | ||
public function runMd() | ||
{ | ||
|
||
// run the mess detector | ||
$this->_exec( | ||
sprintf( | ||
'%s/bin/phpmd %s xml phpmd.xml --reportfile %s/reports/pmd.xml --ignore-violations-on-exit || exit 0', | ||
$this->getVendorDir(), | ||
$this->getSrcDir(), | ||
$this->getTargetDir() | ||
) | ||
); | ||
} | ||
|
||
/** | ||
* Run's the PHPCPD. | ||
* | ||
* @return void | ||
*/ | ||
public function runCpd() | ||
{ | ||
|
||
// run the copy past detector | ||
$this->_exec( | ||
sprintf( | ||
'%s/bin/phpcpd --names-exclude=DirectoryParser.php %s --log-pmd %s/reports/pmd-cpd.xml', | ||
$this->getVendorDir(), | ||
$this->getSrcDir(), | ||
$this->getTargetDir() | ||
) | ||
); | ||
} | ||
|
||
/** | ||
* Run's the PHPCodeSniffer. | ||
* | ||
* @return void | ||
*/ | ||
public function runCs() | ||
{ | ||
|
||
// run the code sniffer | ||
$this->_exec( | ||
sprintf( | ||
'%s/bin/phpcs -n --report-full --extensions=php --standard=phpcs.xml --report-checkstyle=%s/reports/phpcs.xml %s', | ||
$this->getVendorDir(), | ||
$this->getTargetDir(), | ||
$this->getSrcDir() | ||
) | ||
); | ||
} | ||
|
||
/** | ||
* Run's the PHPUnit tests. | ||
* | ||
* @return void | ||
*/ | ||
public function runTests() | ||
{ | ||
|
||
// run PHPUnit | ||
$this->taskPHPUnit(sprintf('%s/bin/phpunit', $this->getVendorDir())) | ||
->configFile('phpunit.xml') | ||
->run(); | ||
} | ||
|
||
/** | ||
* The complete build process. | ||
* | ||
* @return void | ||
*/ | ||
public function build() | ||
{ | ||
$this->clean(); | ||
$this->prepare(); | ||
$this->runCs(); | ||
$this->runCpd(); | ||
$this->runMd(); | ||
$this->runTests(); | ||
} | ||
|
||
/** | ||
* Returns the distribution directory. | ||
* | ||
* @return string The distribution directory | ||
*/ | ||
protected function getDistDir() | ||
{ | ||
return Robo::config()->get(sprintf('%s.%s', ConfigurationKeys::DIRS, 'dist')); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
#-------------------------------------------------------------------------------- | ||
# appserver-io/appserver Build Default Properties | ||
# | ||
# @copyright Copyright (c) 2010 <info@techdivision.com> - TechDivision GmbH | ||
# @license http://opensource.org/licenses/osl-3.0.php | ||
# Open Software License (OSL 3.0) | ||
# @author TechDivision GmbH - Core Team <core@techdivision.com> | ||
#-------------------------------------------------------------------------------- | ||
;-------------------------------------------------------------------------------- | ||
; appserver-io/appserver Build Default Properties | ||
; | ||
; @copyright Copyright (c) 2010 <info@techdivision.com> - TechDivision GmbH | ||
; @license http://opensource.org/licenses/osl-3.0.php | ||
; Open Software License (OSL 3.0) | ||
; @author TechDivision GmbH - Core Team <core@techdivision.com> | ||
;-------------------------------------------------------------------------------- | ||
|
||
# ---- Module Release Settings -------------------------------------------------- | ||
; ---- Module Release Settings -------------------------------------------------- | ||
release.version = 1.1.4-beta10 | ||
release.name = Iron Knight | ||
|
||
# ---- PHPCPD Settings ---------------------------------------------------------- | ||
# Directories | ||
; ---- PHPCPD Settings ---------------------------------------------------------- | ||
; Directories | ||
phpcpd-exclude.dir = --exclude AppserverIo/Appserver/PersistentServletEngine | ||
phpcpd-exclude.names = --names-exclude=NamingDirectoryImpl.php,DeploymentDescriptorParser.php,DirectoryParser.php | ||
phpcpd-additional.args = ${phpcpd-exclude.dir} ${phpcpd-exclude.names} | ||
|
||
# ---- PHPCS Settings ----------------------------------------------------------- | ||
# can be overwritten locally | ||
; ---- PHPCS Settings ----------------------------------------------------------- | ||
; can be overwritten locally | ||
phpcs-additional.args = --ignore=server.php,bootstrap.php,webapps,var/scripts/bootstrap.php |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<?xml version="1.0"?> | ||
<ruleset name="appserver-io/appserver"> | ||
|
||
<!-- | ||
The TechDivision GmbH coding standard is using a mix of PSR-2 | ||
coding conventions and PEAR doc-block commenting rules. | ||
--> | ||
<description>TechDivision GmbH coding standard</description> | ||
|
||
<!-- Define global exclude patterns --> | ||
<exclude-pattern>*/doc/*</exclude-pattern> | ||
<exclude-pattern>*/tests/*</exclude-pattern> | ||
<exclude-pattern>*/target/*</exclude-pattern> | ||
<exclude-pattern>*/vendor/*</exclude-pattern> | ||
|
||
<!-- Mainly use PSR2 coding standard --> | ||
<rule ref="PSR2"/> | ||
|
||
<!-- Include commenting sniffs from PEAR standard --> | ||
<rule ref="PEAR.Commenting.FunctionComment"/> | ||
<rule ref="PEAR.Commenting.InlineComment"/> | ||
|
||
<!-- Include generic commenting sniffs --> | ||
<rule ref="Generic.Commenting.Fixme"/> | ||
<rule ref="Generic.Commenting.Todo"/> | ||
|
||
</ruleset> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<ruleset name="appserver-io/appserver PHPMD rule set" | ||
xmlns="http://pmd.sf.net/ruleset/1.0.0" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 | ||
http://pmd.sf.net/ruleset_xml_schema.xsd" | ||
xsi:noNamespaceSchemaLocation=" | ||
http://pmd.sf.net/ruleset_xml_schema.xsd"> | ||
<description> | ||
TechDivision GmbH default PHPMD rule set | ||
</description> | ||
|
||
<rule ref="rulesets/unusedcode.xml" /> | ||
<rule ref="rulesets/codesize.xml" /> | ||
|
||
<!-- Define global exclude patterns --> | ||
<exclude-pattern>*/doc/*</exclude-pattern> | ||
<exclude-pattern>*/tests/*</exclude-pattern> | ||
<exclude-pattern>*/target/*</exclude-pattern> | ||
<exclude-pattern>*/vendor/*</exclude-pattern> | ||
|
||
</ruleset> |
Oops, something went wrong.