blob: 5d9bcbee92c611798bd74d08702043b3c06de18f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
pipeline {
agent none
triggers {
pollSCM('H 0-3,10-23 * * *')
}
stages {
stage('Build') {
parallel {
stage('HTML') {
agent {
docker {
image 'silex/emacs:27.2-alpine-ci-cask'
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 "%g" .) .cask .org-timestamps 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([
sshUserPrivateKey(
credentialsId: 'ryuslash.org-deploy-key-2',
keyFileVariable: 'KEY_FILE',
usernameVariable: 'USERNAME'),
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/ "$USERNAME@ryuslash.org:ryuslash-next/"'
}
}
}
}
}
|