Tom Willemse
f58fe670d9
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.
48 lines
1.3 KiB
Groovy
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/"'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|