-
Notifications
You must be signed in to change notification settings - Fork 74
/
ep426I_unit_mac64_java17.groovy
153 lines (125 loc) · 4.63 KB
/
ep426I_unit_mac64_java17.groovy
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
146
147
148
149
150
151
152
153
job('AutomatedTests/ep426I-unit-mac64-java17'){
description('Run Eclipse SDK Tests for 64 bit Mac (and 64 bit VM and Eclipse)')
logRotator {
daysToKeep(5)
numToKeep(10)
}
parameters {
stringParam('buildId', null, 'Build Id to test (such as I20120717-0800, N20120716-0800). ')
stringParam('testSuite', 'all', null)
}
label('nc1ht-macos11-arm64')
jdk('openjdk-jdk11-latest')
authenticationToken('windows2012tests')
wrappers { //adds pre/post actions
timestamps()
timeout {
absolute(600)
}
}
steps {
shell('''
#!/usr/bin/env bash
if [[ -z "${WORKSPACE}" ]]
then
echo -e "\\n\\tERROR: WORKSPACE variable was not defined"
exit 1
else
if [[ ! -d "${WORKSPACE}" ]]
then
echo -e "\\n\\tERROR: WORKSPACE was defined, but did not exist?"
echo -e "\\t\\tIt was defined as ${WORKSPACE}"
exit 1
else
echo -e "\\n\\tINFO: WORKSPACE was defined as ${WORKSPACE}"
echo -e "\\t\\tWill delete contents, for clean run"
MaxLoops=15
SleepTime=60
currentLoop=0
nFilesOrDirs=$( find "${WORKSPACE}" -mindepth 1 -maxdepth 1 | wc -l )
while [[ ${nFilesOrDirs} -gt 0 ]]
do
currentLoop=$(( ${currentLoop} + 1 ))
if [[ ${currentLoop} -gt ${MaxLoops} ]]
then
echo -e "\\n\\tERROR: Number of re-try loops, ${currentLoop}, exceeded maximum, ${MaxLoops}. "
echo -e " \\t\\tPossibly due to files still being used by another process?"
exit 0
break
fi
echo -e "\\tcurrentLoop: ${currentLoop} nFilesOrDirs: ${nFilesOrDirs}"
find "${WORKSPACE}" -mindepth 1 -maxdepth 1 -execdir rm -fr '{}' \\;
nFilesOrDirs=$( find "${WORKSPACE}" -mindepth 1 -maxdepth 1 | wc -l )
if [[ ${nFilesOrDirs} -gt 0 ]]
then
sleep ${SleepTime}
fi
done
fi
fi
echo -e "\\t... ending cleaning"
exit 0
''')
shell('''
#!/bin/bash -x
RAW_DATE_START="$(date +%s )"
echo -e "\\n\\tRAW Date Start: ${RAW_DATE_START} \\n"
echo -e "\\n\\t whoami: $( whoami )\\n"
echo -e "\\n\\t uname -a: $(uname -a)\\n"
# unset commonly defined system variables, which we either do not need, or want to set ourselves.
# (this is to improve consistency running on one machine versus another)
echo -e "Unsetting variables: JAVA_BINDIR JAVA_HOME JAVA_ROOT JDK_HOME JRE_HOME CLASSPATH ANT_HOME\\n"
unset -v JAVA_BINDIR JAVA_HOME JAVA_ROOT JDK_HOME JRE_HOME CLASSPATH ANT_HOME
# 0002 is often the default for shell users, but it is not when ran from
# a cron job, so we set it explicitly, to be sure of value, so releng group has write access to anything
# we create on shared area.
oldumask=$(umask)
umask 0002
echo "umask explicitly set to 0002, old value was $oldumask"
# we want java.io.tmpdir to be in $WORKSPACE, but must already exist, for Java to use it.
mkdir -p tmp
curl -o getEBuilder.xml https://download.eclipse.org/eclipse/relengScripts/production/testScripts/hudsonBootstrap/getEBuilder.xml 2>&1
cat getEBuilder.xml
curl -o buildProperties.sh https://download.eclipse.org/eclipse/downloads/drops4/$buildId/buildproperties.shsource
cat getEBuilder.xml
source buildProperties.sh
export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
export ANT_HOME=/opt/homebrew/Cellar/ant/1.10.11/libexec
export PATH=${JAVA_HOME}/bin:${ANT_HOME}/bin:${PATH}
echo JAVA_HOME: $JAVA_HOME
echo ANT_HOME: $ANT_HOME
echo PATH: $PATH
env 1>envVars.txt 2>&1
ant -diagnostics 1>antDiagnostics.txt 2>&1
java -XshowSettings -version 1>javaSettings.txt 2>&1
export eclipseArch=x86_64
ant -f getEBuilder.xml -Djava.io.tmpdir=${WORKSPACE}/tmp -DbuildId=$buildId -DeclipseStream=$STREAM -DEBUILDER_HASH=${EBUILDER_HASH} -DdownloadURL=http://download.eclipse.org/eclipse/downloads/drops4/${buildId} -Dosgi.os=macosx -Dosgi.ws=cocoa -Dosgi.arch=x86_64 -DtestSuite=${testSuite}
RAW_DATE_END="$(date +%s )"
echo -e "\\n\\tRAW Date End: ${RAW_DATE_END} \\n"
TOTAL_TIME=$((${RAW_DATE_END} - ${RAW_DATE_START}))
echo -e "\\n\\tTotal elapsed time: ${TOTAL_TIME} \\n"
''')
}
publishers {
archiveJunit('**/eclipse-testing/results/xml/*.xml') {
retainLongStdout()
healthScaleFactor((1.0).doubleValue())
}
archiveArtifacts {
pattern('**/eclipse-testing/results/**, **/eclipse-testing/directorLogs/**, *.properties, *.txt')
}
extendedEmail {
recipientList("sravankumarl@in.ibm.com")
}
downstreamParameterized {
trigger('ep-collectResults') {
condition('UNSTABLE_OR_BETTER')
parameters {
predefinedProp('triggeringJob', '$JOB_NAME')
predefinedProp('triggeringBuildNumber', '$BUILD_NUMBER')
predefinedProp('buildId', '$buildId')
}
}
}
}
}