pipeline { agent { node { label 'mapguesser' customWorkspace 'workspace/mapguesser' } } stages { stage('Install composer') { environment { COMPOSER_HOME="${WORKSPACE}/.composer" } agent { dockerfile { filename 'docker/Dockerfile' dir '.' additionalBuildArgs '--target mapg_base' reuseNode true } } steps { sh 'composer install' } } stage('Unit Testing') { agent { dockerfile { filename 'docker/Dockerfile' dir '.' additionalBuildArgs '--target mapg_base' reuseNode true } } steps { sh 'vendor/bin/phpunit --log-junit unit_test_results.xml --testdox tests' } post { success { archiveArtifacts 'unit_test_results.xml' } } } stage('Static Code Analysis') { agent { dockerfile { filename 'docker/Dockerfile' dir '.' additionalBuildArgs '--target mapg_base' reuseNode true } } steps { sh 'php -d memory_limit=1G vendor/bin/phpstan analyse -c phpstan.neon --error-format=prettyJson > static_code_analysis_results.json' } post { success { archiveArtifacts 'static_code_analysis_results.json' } } } } }