new-ryuslash.org/Jenkinsfile
Tom Willemse 4a92c675ef Fix upload location
When using rrsync the directory it restricts you to becomes the base directory
you see.
2020-10-10 01:11:11 -07:00

56 lines
1.8 KiB
Groovy

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'
// Because we're running in root, the public/ directory
// isn't owned by the Jenkins user, meaning that
// unstashing in a different stage fails.
sh 'chown -R $(stat -c "%u" .):$(stat -c "%u" .) public'
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'
args '-u root --privileged'
}
}
steps {
unstash 'public_html'
unstash 'public_css'
withCredentials([file(credentialsId: 'ryuslash.org-deploy-key-2', variable: 'KEY_FILE'),
file(credentialsId: 'ryuslash-known-hosts', variable: 'KNOWN_HOSTS_FILE')]) {
sh 'rsync -e "ssh -p 4511 -o \\"UserKnownHostsFile $KNOWN_HOSTS_FILE\\" -i $KEY_FILE" -v -c -r --delete public/ "site@ryuslash.org:"'
}
}
}
}
}