author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 23 Nov 2015 14:00:53 +0100 | |
changeset 552 | f79944e2bd85 |
parent 551 | 00ebb1b85f53 |
child 553 | d83cb4945d5e |
permissions | -rw-r--r-- |
549
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
# |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
# A set of functions to be used in PetitParser's CI jobs |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
# |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
# Set up some environment variables (if not set by CI) |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
if [ -z "$BUILD_NUMBER" ]; then |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
BUILD_NUMBER=0 |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
fi |
552
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
9 |
|
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
10 |
# Environment variable PETITCOMPILER_DATA_DIRECTORY |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
11 |
# should point to the directory where test data are |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
12 |
# stored (or where they should be downloaded and |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
13 |
# unpacked. To save bandwidth and disk space, when run |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
14 |
# on (CTU FIT) Jenkins, point them to the shared directory |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
15 |
|
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
16 |
case $(uname -n) in |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
17 |
swing-h-win64) |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
18 |
PETITCOMPILER_DATA_DIRECTORY="E:\\workspace\\petitcompiler_test_data" |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
19 |
;; |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
20 |
swing-hudson-lin64) |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
21 |
PETITCOMPILER_DATA_DIRECTORY="/ws/workspace/petitcompiler_test_data" |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
22 |
;; |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
23 |
*) |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
24 |
PETITCOMPILER_DATA_DIRECTORY=test-data |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
25 |
;; |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
26 |
esac |
549
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
PETITCOMPILER_BENCHMARK_REPORT=benchmark-results-$BUILD_NUMBER.json |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
|
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
function ci_download_and_unzip_file { |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
local url=$1 |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
local where=$PETITCOMPILER_DATA_DIRECTORY |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
local file=${url##*/} |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
local directory=${file%.zip} |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
local status=0 |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
|
552
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
36 |
if [ ! -d "$where/$directory" ]; then |
f79944e2bd85
Use shared directory for test data on Jenkins
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
551
diff
changeset
|
37 |
pushd "$where" |
549
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
wget -O "$file" "$url" |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
set +e |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
unzip -o "$file" |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
status=$? |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
set -e |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
case "$status" in |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
0) |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
status=0 |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
;; |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
1) |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
status=0 |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
;; |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
2) |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
status=0 |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
;; |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
*) |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
;; |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
esac |
551
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
56 |
# This is weird, but on Windows, sometimes I got |
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
57 |
# exit code 50 from unzip even though there's plenty |
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
58 |
# of space. To workaround, simply ignore it here, sigh. |
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
59 |
if [ "$OS" == "Windows_NT" ]; then |
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
60 |
if [ "$status" == "50" ]; then |
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
61 |
status=0 |
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
62 |
fi |
00ebb1b85f53
Fixed CI scripts on Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
549
diff
changeset
|
63 |
fi |
549
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
rm -f "$file" |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
popd |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
else |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
echo "Skipped $directory (already present)" |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
fi |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
return "$status" |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
} |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
|
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
function ci_download_test_data { |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
if [ ! -x "$PETITCOMPILER_DATA_DIRECTORY" ]; then |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
mkdir -p "$PETITCOMPILER_DATA_DIRECTORY" |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
fi |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/java-src.zip |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/smalltalk-src.zip |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/ruby-src.zip |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
ci_download_and_unzip_file http://scg.unibe.ch/download/jk/petit-compiler/python-src.zip |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
} |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
|
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
function ci_upload_benchmark_results { |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
if [ -f "$PETITCOMPILER_BENCHMARK_REPORT" ]; then |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
url 'https://swing.fit.cvut.cz/calipel/imports/push-import' \ |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
--user "$CALIPEL_USER:$CALIPEL_PASSWORD" \ |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
--compressed \ |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
-H 'Content-Type: application/json' \ |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
--data "@$PETITCOMPILER_BENCHMARK_REPORT" |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
fi |
8ad6734770cd
Added CI scripts for PetitParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
} |