RoboFile.php (45 lines of code) (raw):

<?php /** * This is project's console commands configuration for Robo task runner. * * @see http://robo.li/ */ class RoboFile extends \Robo\Tasks { function satisDirExists() { exec('ls -l vendor/bin/satis 2> /dev/null', $output, $satis_exit_code); return ($satis_exit_code === 0) ? TRUE: FALSE; } function getBuildRepo() { $collection = $this->collectionBuilder(); $collection->taskDeleteDir('build') ->taskGitStack() ->stopOnFail() ->cloneShallow('git@github.com:DeloitteDigitalAPAC/qd-satis.git', 'build', 'gh-pages'); return $collection->run(); } function buildSatis() { return $this->taskExec('php vendor/bin/satis build satis.json build') ->run(); } function publishChanges() { $user_name = exec('git config user.name'); $current_commit = exec('git rev-parse --verify HEAD'); return $this->taskGitStack() ->stopOnFail() ->dir('build') ->add('-A') ->commit("Robo build - $current_commit - $user_name") ->push('origin', 'gh-pages') ->run(); } function build($opts = ['publish' => false]) { $this->stopOnFail(TRUE); $this->getBuildRepo(); $this->buildSatis(); $this->taskGitStack() ->dir('build') ->exec('status') ->run(); if ($opts['publish']) { $this->publishChanges(); } } function serve() { $this->_exec('php -S localhost:8000 -t build'); } }