pipeline { options { checkoutToSubdirectory('phabricator') } agent { dockerfile { additionalBuildArgs '--tag arcanist' dir 'phabricator' } } environment { HOME = "$WORKSPACE" GIT_COMMITTER_NAME = 'jenkins' GIT_COMMITTER_EMAIL = 'jenkins@c4science.ch' DEBIAN_FRONTEND = 'noninteractive' } stages { stage('start services') { steps { sh 'sudo mysqld &' sh 'sudo /etc/init.d/apache2 start' } } stage('install phabricator'){ steps { sh 'git clone -b stable https://c4science.ch/source/libphutil.git' sh 'git clone -b stable https://secure.phabricator.com/diffusion/ARC/arcanist.git' sh ''' cd phabricator ./bin/config set mysql.host 127.0.0.1 ./bin/config set mysql.user root ./bin/config set mysql.pass root ./bin/storage upgrade --force --no-quickstart ''' } } stage('celerity map') { steps { sh ''' cd phabricator ./bin/celerity map ''' } } stage('libphutil map') { steps { sh ''' cd phabricator arc liberate ''' } } stage('arcanist') { steps { sh ''' cd phabricator arc lint --rev $GIT_PREVIOUS_COMMIT --severity error --never-apply-patches --only-changed arc unit --rev $GIT_PREVIOUS_COMMIT ''' } } } post { always { archiveArtifacts artifacts: 'phabricator/resources/celerity/map.php' archiveArtifacts artifacts: 'phabricator/src/__phutil_library_map__.php' cleanWs() } } }