| #!/bin/bash |
| # |
| # collect the SHAs used in the latest builds to determine if we've built everything upstream already |
| |
| # compare https://git.eclipse.org/c/jeetools/webtools.javaee.git/commit/?h=master or ?h=R3_9_maintenance |
| # <tr><th>commit</th><td colspan='2' class='sha1'><a href='/c/jeetools/webtools.javaee.git/commit/?id=7500821ec81657bafc1c6411d79547266d7befb8'>7500821ec81657bafc1c6411d79547266d7befb8</a> (<a href='/c/jeetools/webtools.javaee.git/patch/?id=7500821ec81657bafc1c6411d79547266d7befb8'>patch</a>)</td></tr> |
| |
| # with https://ci.eclipse.org/webtools/job/webtools-javaee_master/lastStableBuild/api/xml?xpath=//lastBuiltRevision/SHA1 |
| # <SHA1>7500821ec81657bafc1c6411d79547266d7befb8</SHA1> |
| |
| norm="\033[0;39m" |
| green="\033[1;32m" |
| red="\033[1;31m" |
| |
| branch=master |
| quiet=0 # flag which only returns status of 0/"" (if pass) or 1 (if fail) |
| projects="common servertools jsdt sourceediting javaee dali jsf webservices" |
| |
| # read commandline args |
| while [[ "$#" -gt 0 ]]; do |
| case $1 in |
| '-b') branch="$2"; shift 1;; |
| '-q') quiet=1; shift 0;; |
| '-nc') red=$norm; green=$norm; shift 0;; # disable colour |
| *) projects="$projects $1";; |
| esac |
| shift 1 |
| done |
| |
| if [[ ! $branch ]]; then |
| echo "branch is not set!"; exit 1 |
| fi |
| if [[ ! $projects ]]; then |
| echo "no project(s) selected!"; exit 1 |
| fi |
| |
| log () |
| { |
| if [[ $quiet == 0 ]]; then echo -e "$1"; fi |
| } |
| logn () |
| { |
| if [[ $quiet == 0 ]]; then echo -e -n "$1"; fi |
| } |
| |
| projectsToBuild="" |
| for d in ${projects}; do |
| if [[ ${d} == "common" ]]; then |
| gitURL="http://git.eclipse.org/c/webtools-common/webtools.common.git/commit/?h=${branch}" |
| elif [[ ${d} == "javaee" ]]; then |
| gitURL="https://git.eclipse.org/c/jeetools/webtools.javaee.git/commit/?h=${branch}" |
| else |
| gitURL="https://git.eclipse.org/c/${d}/webtools.${d}.git/commit/?h=${branch}" |
| fi |
| # use lastSuccessfulBuild to allow for failed tests (yellow builds) |
| jobURL="https://ci.eclipse.org/webtools/job/webtools-${d}_${branch}/lastSuccessfulBuild/api/xml?xpath=//lastBuiltRevision/SHA1" |
| |
| jobSHA=$(wget -q ${jobURL} -O- | sed -e "s#.*<SHA1>\(.\+\)</SHA1>.*#\1#") |
| logn "$d :: $jobSHA (last successful job)" |
| gitSHA=$(wget -q ${gitURL} -O- | grep "<th>commit</th>" | sed -e "s#.*?id=\(.\+\)'>.*#\1#") |
| if [[ ${gitSHA} != ${jobSHA} ]]; then |
| bwpURL="https://ci.eclipse.org/webtools/job/webtools-${d}_${branch}/buildWithParameters?token=CI-BUILD" |
| if [[ $quiet == 0 ]]; then |
| projectsToBuild="${projectsToBuild} <a href=${bwpURL}>${bwpURL}</a>" |
| else |
| projectsToBuild="${projectsToBuild} ${bwpURL}" |
| fi |
| logn " :: ${red}ERROR${norm}" |
| if [[ ${gitSHA} ]]; then |
| log ": $gitSHA (last git commit)" |
| else |
| log ": $gitURL" |
| fi |
| else |
| log " :: ${green}OK${norm}" |
| fi |
| done |
| |
| if [[ ${projectsToBuild} != "" ]]; then |
| log "" |
| logn "[ERROR] These projects need to be built upstream before we can rebuild the CI job: " |
| echo ${projectsToBuild} |
| fi |