Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cosmetics.
[simgrid.git] / tools / jenkins / project_description.sh
index 5311785..a8979e0 100755 (executable)
 #!/bin/bash
 
+get_boost(){
+    grep -m 1 "Boost version:" ./consoleText | sed  "s/.*-- Boost version: \([a-zA-Z0-9\.]*\)/\1/g"
+}
+
+get_compiler(){
+    grep -m 1 "The C compiler identification" ./consoleText | sed  "s/.*-- The C compiler identification is \([a-zA-Z0-9\.]*\)/\1/g"
+}
+
+get_java(){
+    grep -m 1 "Found Java:" ./consoleText | sed "s/.*-- Found Java.*found suitable version \"\([a-zA-Z0-9\.]*\)\",.*/\1/g"
+}
+
+get_cmake(){
+    grep -m 1 "Cmake version" ./consoleText| sed "s/.*-- Cmake version \([a-zA-Z0-9\.]*\)/\1/g"
+}
+
+get_ns3(){
+  found=$(grep -c "NS-3 found" ./consoleText)
+  if [ $found != 0 ]; then
+    echo "✔"
+  else
+    echo ""
+  fi
+}
+
+get_python(){
+  found=$(grep -c "Compile Python bindings .....: ON" ./consoleText)
+  if [ $found != 0 ]; then
+    echo "✔"
+  else
+    echo ""
+  fi
+}
+
+if [ -f consoleText ]; then
+  rm consoleText
+fi
+
+
+if [ -z $BUILD_URL ]; then
+  BUILD_URL="https://ci.inria.fr/simgrid/job/SimGrid/lastBuild"
+fi
+
+#get the list of nodes on jenkins
+wget --quiet ${BUILD_URL}/consoleText >/dev/null 2>&1
+nodes=($(grep -rR "Triggering SimGrid ? Debug," ./consoleText | sed "s/Triggering SimGrid ? Debug,\(.*\)/\1/g"| sort))
 rm consoleText
-wget –quiet https://ci.inria.fr/simgrid/job/SimGrid/lastBuild/consoleText >/dev/null 2>&1
-nodes=($(grep -rR "Triggering SimGrid ? Debug," ./consoleText | sed "s/Triggering SimGrid ? Debug,\(.*\)/\1/g"))
-nodes=($(for i in "${nodes[@]}"; do echo "$i"; done | sort))
-rm consoleText
-echo "<br>Info on configurations<br><br>
+
+
+echo "<br>Description of the nodes - Automatically updated by project_description.sh script - Don't edit here<br><br>
 <table id="configuration-matrix"> 
-<tr class="matrix-row">  <td class="matrix-header">Name of the Builder</td><td class="matrix-header">OS version</td><td class="matrix-header">Compiler name and version</td><td class="matrix-header">Boost version</td><td class="matrix-header">Java version</td><td class="matrix-header">Cmake version</td></tr>"
+<tr class="matrix-row">  <td class="matrix-header" style="min-width:75px">Name of the Builder</td><td class="matrix-header" style="min-width:75px">OS</td><td class="matrix-header" style="min-width:75px">Compiler</td><td class="matrix-header" style="min-width:75px">Boost</td><td class="matrix-header" style="min-width:75px">Java</td><td class="matrix-header" style="min-width:75px">Cmake</td><td class="matrix-header" style="min-width:50px">NS3</td><td class="matrix-header" style="min-width:50px">Python</td></tr>"
 
 for node in "${nodes[@]}"
 do
-    wget –quiet https://ci.inria.fr/simgrid/job/SimGrid/lastBuild/build_mode=Debug,node=${node}/consoleText >/dev/null 2>&1
+    wget --quiet ${BUILD_URL}/build_mode=Debug,node=${node}/consoleText >/dev/null 2>&1
     if [ ! -f consoleText ]; then
-         echo "file not existing for node ${node}"
-         exit 1
+      echo "file not existing for node ${node}"
+      exit 1
     fi
-    boost=$(grep -m 1 "Boost version:" ./consoleText | sed  "s/-- Boost version: \(.*\)/\1/g")
-    compiler=$(grep -m 1 "The C compiler identification" ./consoleText | sed  "s/-- The C compiler identification is \(.*\)/\1/g")
-       java=$(grep -m 1 "Found Java:" ./consoleText | sed "s/-- Found Java.*found suitable version \"\(.*\)\",.*/\1/g")
-       cmake=$(grep -m 1 "Cmake version" ./consoleText| sed "s/-- Cmake version \(.*\)/\1/g")
-       os=$(grep -m 1 "OS Version" ./consoleText| sed "s/OS Version : \(.*\)/\1/g")
-    echo "<tr> <td class=\"matrix-leftcolumn\">$node</td><td class=\"matrix-cell\" style=\"text-align:left\">$os</td><td class=\"matrix-cell\" style=\"text-align:left\">$compiler</td><td class=\"matrix-cell\" style=\"text-align:left\">$boost</td><td class=\"matrix-cell\" style=\"text-align:left\">$java</td><td class=\"matrix-cell\" style=\"text-align:left\">$cmake</td></tr>"
+    boost=$(get_boost)
+    compiler=$(get_compiler)
+    java=$(get_java)
+    cmake=$(get_cmake)
+    ns3=$(get_ns3)
+    py=$(get_python)
+    os=$(grep -m 1 "OS Version" ./consoleText| sed "s/OS Version : \(.*\)/\1/g")
+    echo "<tr> <td class=\"matrix-leftcolumn\">$node</td><td class=\"matrix-cell\" style=\"text-align:left\">$os</td><td class=\"matrix-cell\" style=\"text-align:left\">$compiler</td><td class=\"matrix-cell\" style=\"text-align:left\">$boost</td><td class=\"matrix-cell\" style=\"text-align:left\">$java</td><td class=\"matrix-cell\" style=\"text-align:left\">$cmake</td><td class=\"matrix-cell\" style=\"text-align:center\">$ns3</td><td class=\"matrix-cell\" style=\"text-align:center\">$py</td></tr>"
     rm consoleText
 done
-echo "<tr> <td class="matrix-leftcolumn"><a href="https://travis-ci.org/simgrid/simgrid">travis-linux</a></td><td class="matrix-cell" style="text-align:left">Ubuntu 14.04 (<a href="https://docs.travis-ci.com/user/reference/trusty/">Trusty</a>) 64 bits</td><td class="matrix-cell" style="text-align:left">GNU 4.8.4</td><td class="matrix-cell" style="text-align:left">1.60.0</td><td class="matrix-cell" style="text-align:left">1.8.0.151</td><td class="matrix-cell" style="text-align:left">3.9.2</td></tr>
-<tr> <td class="matrix-leftcolumn"><a href="https://travis-ci.org/simgrid/simgrid">travis-mac</a></td><td class="matrix-cell" style="text-align:left">Mac OSX Sierra (kernel: 16.7.0)</td><td class="matrix-cell" style="text-align:left">AppleClang 8.1.0.8020042</td><td class="matrix-cell" style="text-align:left">1.65.1</td><td class="matrix-cell" style="text-align:left">1.8.0.112</td><td class="matrix-cell" style="text-align:left">3.9.4</td></tr>
-<tr> <td class="matrix-leftcolumn"><a href="https://ci.appveyor.com/project/mquinson/simgrid">appveyor</a></td><td class="matrix-cell" style="text-align:left">Windows Server 2012 - VS2015 + mingw64 5.3.0</td><td class="matrix-cell" style="text-align:left">GNU 5.3.0</td><td class="matrix-cell" style="text-align:left">1.60.0</td><td class="matrix-cell" style="text-align:left">1.8.0.162</td><td class="matrix-cell" style="text-align:left">3.11.3</td></tr>
-</table>"
+
+
+#Travis - get ID of the last jobs with the API
+BUILD_NUM=$(curl -s 'https://api.travis-ci.org/repos/simgrid/simgrid/builds?limit=1' | grep -o '^\[{"id":[0-9]*,' | grep -o '[0-9]' | tr -d '\n')
+BUILDS=($(curl -s https://api.travis-ci.org/repos/simgrid/simgrid/builds/${BUILD_NUM} | grep -o '{"id":[0-9]*,' | grep -o '[0-9]*'| tail -n 2))
+
+for id in "${!BUILDS[@]}"
+do
+    wget --quiet https://api.travis-ci.org/v3/job/${BUILDS[$id]}/log.txt -O ./consoleText >/dev/null 2>&1
+    sed -i -e "s/\r//g" ./consoleText
+    if [ $id == 0 ]; then
+      node="<a href=\"https://travis-ci.org/simgrid/simgrid\">travis-linux</a>"
+      os="Ubuntu 14.04 (<a href=\"https://docs.travis-ci.com/user/reference/trusty/\">Trusty</a>) 64 bits"
+    else
+      node="<a href=\"https://travis-ci.org/simgrid/simgrid\">travis-mac</a>"
+      os="Mac OSX High Sierra (kernel: 17.4.0)"
+    fi
+    boost=$(get_boost)
+    compiler=$(get_compiler)
+    java=$(get_java)
+    cmake=$(get_cmake)
+    ns3=$(get_ns3)
+    py=$(get_python)
+    echo "<tr> <td class=\"matrix-leftcolumn\">$node</td><td class=\"matrix-cell\" style=\"text-align:left\">$os</td><td class=\"matrix-cell\" style=\"text-align:left\">$compiler</td><td class=\"matrix-cell\" style=\"text-align:left\">$boost</td><td class=\"matrix-cell\" style=\"text-align:left\">$java</td><td class=\"matrix-cell\" style=\"text-align:left\">$cmake</td><td class=\"matrix-cell\" style=\"text-align:center\">$ns3</td><td class=\"matrix-cell\" style=\"text-align:center\">$py</td></tr>"
+    rm consoleText
+done
+
+#Appveyor - get ID of the last job with the API
+BUILD_ID=$(curl -s "https://ci.appveyor.com/api/projects/mquinson/simgrid" | grep -o '\[{"jobId":"[a-zA-Z0-9]*",' | sed "s/\[{\"jobId\":\"//" | sed "s/\",//")
+wget --quiet https://ci.appveyor.com/api/buildjobs/$BUILD_ID/log -O ./consoleText >/dev/null 2>&1
+sed -i -e "s/\r//g" ./consoleText
+node="<a href="https://ci.appveyor.com/project/mquinson/simgrid">appveyor</a>"
+os="Windows Server 2012 - VS2015 + mingw64 5.3.0"
+boost=$(get_boost)
+compiler=$(get_compiler)
+java=$(get_java)
+cmake=$(get_cmake)
+ns3=$(get_ns3)
+py=$(get_python)
+echo "<tr> <td class=\"matrix-leftcolumn\">$node</td><td class=\"matrix-cell\" style=\"text-align:left\">$os</td><td class=\"matrix-cell\" style=\"text-align:left\">$compiler</td><td class=\"matrix-cell\" style=\"text-align:left\">$boost</td><td class=\"matrix-cell\" style=\"text-align:left\">$java</td><td class=\"matrix-cell\" style=\"text-align:left\">$cmake</td><td class=\"matrix-cell\" style=\"text-align:center\">$ns3</td><td class=\"matrix-cell\" style=\"text-align:center\">$py</td></tr>"
+rm consoleText
+
+echo "</table>"