def dockerImage = 'silex/emacs:27.1-alpine-dev' node('docker') { checkout scm stage('Build') { docker.image(dockerImage).inside { sh 'make' stash includes: 'public/*', name: 'public_html' } } stage('Deploy') { docker.image('instrumentisto/rsync-ssh').inside { unstash 'public_html' 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:"' } } } }