new-ryuslash.org/Jenkinsfile
Tom Willemse f58fe670d9 Run stages using different container images
The Build/HTML stage needs the Emacs image because it uses Emacs to convert the
org files into html files. The Build/CSS stage runs in an image defined by the
Dockerfile in this repository, installing just make, npm, and lessc to convert
the less files into CSS files. And the Deploy step needs to upload using rsync
overs ssh.
2020-10-09 23:07:55 -07:00

48 lines
1.3 KiB
Groovy

pipeline {
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/"'
}
}
}
}
}