pipeline { agent { node { label 'willa' } } stages { stage('build for production') { when { branch 'master' } steps { sh 'docker build -t registry.willaspace.com/willaspace/${IMAGE_NAME}:latest --build-arg ssh_prv_key="$(cat /home/administrator/.ssh/id_rsa)" .' sh 'cd /home/administrator/apps/${IMAGE_NAME}/;sudo ./BuildDocker' } } stage('build for staging') { when { branch 'dev' } steps { sh 'docker build -t registry.willaspace.com/willaspace/${IMAGE_NAME}-staging:latest -f Dockerfile.staging --build-arg ssh_prv_key="$(cat /home/administrator/.ssh/id_rsa)" .' sh 'docker build -t registry.willaspace.com/willaspace/${IMAGE_NAME}-staging-nginx:latest -f Dockerfile.nginx .' } } stage('deploy to production') { when { branch 'master' } steps { sh 'cd /home/administrator/apps/${IMAGE_NAME}/ ; docker-compose up -d' sh 'docker exec willaengine bash -c "COMPOSER=composer-prod.json composer update"' sh 'docker exec willaengine service cron start' sh 'docker exec willaengine php artisan config:cache' sh 'docker exec willaengine php artisan route:cache' } } stage('deploy to staging') { when { branch 'dev' } steps { sh 'cd /apps/${IMAGE_NAME}-staging/ ; docker-compose up -d' sh 'docker exec willaengine bash -c "COMPOSER=composer-staging.json composer update"' } } } environment { IMAGE_NAME = 'willaengine' } }