pipeline { agent none stages { stage('Build') { parallel { stage('HTML') { agent { docker { image 'silex/emacs:27.1-alpine-dev' args '-u root --privileged' } } steps { sh 'cask' sh 'make html' stash includes: 'public/*', name: 'public_html' } } stage('CSS') { agent { dockerfile true } steps { sh 'make css' stash includes: 'public/*', name: 'public_css' } } } } stage('Deploy') { agent { docker { image 'instrumentisto/rsync-ssh' } } steps { unstash 'public_html' unstash 'public_css' withCredentials([file(credentialsId: 'ryuslash.org-deploy-key', variable: 'KEY_FILE')]) { sh 'rsync -e "ssh -p 4511 -i $KEY_FILE" -v -c -r --delete public/ "site@ryuslash.org:public_html/"' } } } } }