forked from oracle/fastr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ci.hocon
145 lines (121 loc) · 5.15 KB
/
ci.hocon
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# This is part of the framework used by FastR for continuous integration testing.
# It is not intended that this "code" is directly usable by third-party developers
# but it provide details on the commands that are used and these should be
# executable in isolation; see further comments below.
# java 7 is needed by Truffle (for now)
java7 : {name : oraclejdk, version : "7", platformspecific: true}
# java 8 must be a jvmci enabled variant
java8 : {name : labsjdk, version : "8u111-jvmci-0.23", platformspecific: true}
java8Downloads : {
downloads : {
EXTRA_JAVA_HOMES : { pathlist :[
${java7}
]}
JAVA_HOME : ${java8}
}
}
logfiles : [
"fastr_errors.log"
"results.json"
"com.oracle.truffle.r.native/gnur/R-*/gnur_configure.log"
"com.oracle.truffle.r.native/gnur/R-*/gnur_make.log"
"com.oracle.truffle.r.native/gnur/R-*/Makeconf"
"com.oracle.truffle.r.native/gnur/libiconv-*/iconv_configure.log"
"com.oracle.truffle.r.native/gnur/libiconv-*/iconv_make.log"
]
# This is needed by all (Linux) builds but is specific to the module system employed
# on the CI cluster. Not all of the modules are needed by FastR but all are needed by the
# embedded GNU R that is built within FastR.
pkgEnvironment: {
environment : {
PKG_INCLUDE_FLAGS_OVERRIDE : """-I/cm/shared/apps/zlib/1.2.8/include -I/cm/shared/apps/bzip2/1.0.6/include -I/cm/shared/apps/xz/5.2.2/include -I/cm/shared/apps/pcre/8.38/include -I/cm/shared/apps/curl/7.50.1/include"""
PKG_LDFLAGS_OVERRIDE : """"-L/cm/shared/apps/zlib/1.2.8/lib -L/cm/shared/apps/bzip2/1.0.6/lib -L/cm/shared/apps/xz/5.2.2/lib -L/cm/shared/apps/pcre/8.38/lib -L/cm/shared/apps/curl/7.50.1//lib -L/cm/shared/apps/gcc/4.9.1/lib64""""
}
}
packagesLinux : ${pkgEnvironment} {
packages : {
git : ">=1.8.3"
mercurial : ">=2.2"
"pip:astroid" : "==1.1.0"
"pip:pylint" : "==1.1.0"
make : ">=3.83"
gcc-build-essentials : "==4.9.1" # GCC 4.9.0 fails on cluster
readline : "==6.3"
pcre : ">=8.38"
z : ">=1.2.8"
}
}
packagesDarwin : {
"pip:astroid" : "==1.1.0"
"pip:pylint" : "==1.1.0"
"xz" : ""
"pcre" : ""
"z" : ""
}
# Common settings for all builds but note that it uses the Linux package settings,
# so these must be overridden in any darwin builds
common : ${java8Downloads} ${packagesLinux} {
logs: ${logfiles}
timelimit : "1:00:00"
}
# Every "pull request" (PR) is subject to a series of "gate" commands that must pass
# for the PR to be accepted into the master branch. The gate commands are run under
# the "mx" tool. This defines a common prefix for all gate commands. The "-t"
# arg indicates the exact set of gate "tasks" that will be run.
gateCmd : ["mx", "--strict-compliance", "rgate", "--strict-mode", "-t"]
# currently disabled gate commands: FindBugs,Checkheaders,Distribution Overlap Check,BuildJavaWithEcj
# The standard set of gate tasks: the actual executable tests are in the "UnitTests" task.
gateTestCommon : ${common} {
run : [
${gateCmd} ["Versions,JDKReleaseInfo,BuildJavaWithJavac,UnitTests: with specials"]
]
}
gateTestLinux : ${gateTestCommon} {
}
gateTestNoSpecialsLinux : ${common} {
run : [
${gateCmd} ["Versions,JDKReleaseInfo,BuildJavaWithJavac,UnitTests: no specials"]
]
}
darwinEnvironment : {
environment : {
PATH : "/usr/local/bin:$JAVA_HOME/bin:$PATH"
F77: "/usr/local/bin/gfortran-4.9"
}
}
gateTestDarwin : ${gateTestCommon} ${darwinEnvironment} {
packages : ${packagesDarwin} {
}
}
# This performs a number of "style" checks on the code to ensure it confirms to the project standards.
gateStyle : ${common} {
# need pyhocon fix
downloads : {
JAVA_HOME : ${java8Downloads.downloads.JAVA_HOME}
EXTRA_JAVA_HOMES : ${java8Downloads.downloads.EXTRA_JAVA_HOMES}
JDT : {name: ecj, version: "4.5.1", platformspecific: false}
ECLIPSE : {name: eclipse, version: "4.5.2", platformspecific: true}
}
environment : {
ECLIPSE_EXE : "$ECLIPSE/eclipse"
}
run : [
${gateCmd} ["Versions,JDKReleaseInfo,Pylint,Canonicalization Check,BuildJavaWithJavac,IDEConfigCheck,CodeFormatCheck,Checkstyle,Copyright check, UnitTests: ExpectedTestOutput file check"]
]
}
# This check runs diagnostics on the implementation of the R "builtins" in FastR, e.g., that the argument processing is sound.
rbcheck : ${common} {
run : [
${gateCmd} ["Versions,JDKReleaseInfo,BuildJavaWithJavac"]
["mx", "rbcheck"]
["mx", "rbdiag", "-n", "-m"]
]
}
# The standard set of gate builds. N.B. the style/builtin checks are only run on Linux as they are not OS-dependent.
builds = [
${gateTestLinux} {capabilities : [linux, amd64, fast], targets : [gate, post-merge], name: "gate-test-linux-amd64"}
${gateTestNoSpecialsLinux} {capabilities : [linux, amd64, fast], targets : [gate, post-merge], name: "gate-test-linux-amd64-nospecials"}
${gateTestDarwin} {capabilities : [darwin, amd64], targets : [gate, post-merge], name: "gate-test-darwin-amd64"}
${gateStyle} {capabilities : [linux, amd64], targets : [gate, post-merge], name: "gate-style-linux-amd64"}
${rbcheck} {capabilities : [linux, amd64], targets : [gate, post-merge], name: "gate-rbcheck-linux-amd64"}
]