Skip to content

Instantly share code, notes, and snippets.

@chmouel
Last active August 17, 2018 13:24
Show Gist options
  • Save chmouel/54b4a3c299717fd8b54a45a28267fd4e to your computer and use it in GitHub Desktop.
Save chmouel/54b4a3c299717fd8b54a45a28267fd4e to your computer and use it in GitHub Desktop.
start/Get jenkins-build-output by openshift/sync/etc.
#!/bin/bash
set -e
bc=${1}
[[ -z ${bc} ]] && {
echo "need a bc"
echo "$(oc get bc)"
exit 1
}
[[ -n ${T} ]] && targetnamespace="-n $T"
USER=${T}
checkIdler() {
JENKINS_URL=$(echo https://$(oc get route -n ${USER}-jenkins jenkins -o json|jq -r .spec.host))
STATUS=$(curl --fail-early -s -o /dev/null -w "%{http_code}" --user "${USER}-edit:${API_TOKEN}" -s "${JENKINS_URL}" -w "%{http_code}")
[[ $STATUS == 401 ]] && return
oc scale dc/{jenkins,content-repository} --replicas 1 -n $T-jenkins
oc get pod -n $T-jenkins
echo "Idler suck"
oc logs dc/jenkins -n $T-jenkins --follow
exit 1
}
[[ -n ${T} ]] && checkIdler
oc ${targetnamespace} start-build bc/${bc}
echo 1>&2 -n "Waiting: ";
for i in {1..10};do
echo -n 1>&2 "$i.";
URL=$(oc describe build ${bc}-$(oc describe bc/${bc} ${targetnamespace}|gsed -n '/Latest Version/ { s/.*:\s*//; p;}') ${targetnamespace}|grep -o 'https://.*consoleText'|sed 's/Text$//')
[[ -n ${URL} ]] && break
sleep 1;
done;
echo
[[ -z ${URL} ]] && {
echo "NO URL :()";
exit 1;
}
echo $URL
open $URL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment