Skip to content

Commit 10668d4

Browse files
authored
use lock when rsyncing benchmarking data (#904)
Fixes: #896
1 parent 29bc6bc commit 10668d4

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
pidfile=/var/run/nodejs/sync-benchmarking.pid
4+
cmd="
5+
rsync -aqz --delete benchmark:charts/ /home/www/benchmarking/charts/ &&
6+
rsync -aqz --delete benchmark:coverage-out/out/ /home/www/coverage/
7+
"
8+
9+
if [ -a "$pidfile" -a -r "$pidfile" ]; then
10+
read pid < "$pidfile"
11+
if [ -n "${pid:-}" ]; then
12+
if $(kill -0 "${pid:-}" 2> /dev/null); then
13+
exit 0 # already running
14+
# else stale pid
15+
fi
16+
fi
17+
fi
18+
19+
echo $$ > $pidfile
20+
bash -c "$cmd"
21+
rm $pidfile

setup/www/tasks/site-setup.yaml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,15 @@
7070
group: root
7171
tags: setup
7272

73+
- name: Site Setup | Copy sync-benchmarking.sh script
74+
copy:
75+
src: ./resources/scripts/sync-benchmarking.sh
76+
dest: /home/nodejs/sync-benchmarking.sh
77+
mode: 0755
78+
owner: root
79+
group: root
80+
tags: setup
81+
7382
- name: Site Setup | Make /home/nodejs/.npm
7483
file:
7584
path: /home/nodejs/.npm
@@ -78,6 +87,14 @@
7887
owner: nodejs
7988
tags: setup
8089

90+
- name: Site Setup | Make /var/run/nodejs
91+
file:
92+
path: /var/run/nodejs
93+
state: directory
94+
mode: 0755
95+
owner: nodejs
96+
tags: setup
97+
8198
- name: Site Setup | Initial nodejs, iojs and benchmarking clone and update
8299
become: yes
83100
become_user: "nodejs"
@@ -98,6 +115,5 @@
98115
- '* * * * * nodejs /home/nodejs/check-build-site.sh nodejs'
99116
- '* * * * * nodejs /home/nodejs/check-build-site.sh iojs'
100117
- '* * * * * root /home/nodejs/cdn-purge.sh'
101-
- '* */4 * * * nodejs rsync -aqz --delete benchmark:charts/ /home/www/benchmarking/charts/'
102-
- '* */4 * * * nodejs rsync -aqz --delete benchmark:coverage-out/out/ /home/www/coverage/'
118+
- '* */4 * * * nodejs /home/nodejs/sync-benchmarking.sh'
103119
tags: setup

0 commit comments

Comments
 (0)