Tom Willemse
b052934ced
Since all the stages define different agents, the top-level can use any agent.
50 lines
1.3 KiB
Groovy
50 lines
1.3 KiB
Groovy
pipeline {
|
|
agent { any }
|
|
|
|
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/"'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|