Add a notification CI job for successful or failed pipelines
This commit is contained in:
+27
-4
@@ -10,10 +10,14 @@ variables:
|
|||||||
services:
|
services:
|
||||||
- docker:19.03.1-dind
|
- docker:19.03.1-dind
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- build_docker
|
||||||
|
- notification
|
||||||
|
|
||||||
dev_deploy:
|
dev_deploy:
|
||||||
before_script:
|
before_script:
|
||||||
- base64 -d $SA_Development | docker login -u _json_key --password-stdin https://eu.gcr.io
|
- base64 -d $SA_Development | docker login -u _json_key --password-stdin https://eu.gcr.io
|
||||||
stage: build
|
stage: build_docker
|
||||||
script:
|
script:
|
||||||
- cd docker
|
- cd docker
|
||||||
- docker build -t $IMAGE_TAG .
|
- docker build -t $IMAGE_TAG .
|
||||||
@@ -24,7 +28,7 @@ dev_deploy:
|
|||||||
prod_deploy:
|
prod_deploy:
|
||||||
before_script:
|
before_script:
|
||||||
- base64 -d $SA_Production | docker login -u _json_key --password-stdin https://eu.gcr.io
|
- base64 -d $SA_Production | docker login -u _json_key --password-stdin https://eu.gcr.io
|
||||||
stage: build
|
stage: build_docker
|
||||||
script:
|
script:
|
||||||
- docker pull $IMAGE_TAG
|
- docker pull $IMAGE_TAG
|
||||||
- docker tag $IMAGE_TAG $IMAGE_TAG_PROD
|
- docker tag $IMAGE_TAG $IMAGE_TAG_PROD
|
||||||
@@ -35,11 +39,30 @@ prod_deploy:
|
|||||||
stable_deploy:
|
stable_deploy:
|
||||||
before_script:
|
before_script:
|
||||||
- base64 -d $SA_Production | docker login -u _json_key --password-stdin https://eu.gcr.io
|
- base64 -d $SA_Production | docker login -u _json_key --password-stdin https://eu.gcr.io
|
||||||
stage: build
|
stage: build_docker
|
||||||
script:
|
script:
|
||||||
- docker pull $IMAGE_TAG
|
- docker pull $IMAGE_TAG
|
||||||
- docker tag $IMAGE_TAG $IMAGE_TAG_STABLE
|
- docker tag $IMAGE_TAG $IMAGE_TAG_STABLE
|
||||||
- docker push $IMAGE_TAG_STABLE
|
- docker push $IMAGE_TAG_STABLE
|
||||||
only:
|
only:
|
||||||
- /stable_v.*/
|
- /stable_v.*/
|
||||||
|
|
||||||
|
successful-results:
|
||||||
|
image: eu.gcr.io/vnc-development/docker-vnc-deb-builder:latest
|
||||||
|
stage: notification
|
||||||
|
script:
|
||||||
|
- echo "SUCCESS" > result.txt
|
||||||
|
- ./tools/nagnotify.sh || echo "done"
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == "master"'
|
||||||
|
when: on_success
|
||||||
|
|
||||||
|
failed-results:
|
||||||
|
image: eu.gcr.io/vnc-development/docker-vnc-deb-builder:latest
|
||||||
|
stage: notification
|
||||||
|
script:
|
||||||
|
- echo "FAILURE" > result.txt
|
||||||
|
- ./tools/nagnotify.sh || echo "done"
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == "master"'
|
||||||
|
when: on_failure
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
BROADCASTSENDER=jenkins.bot@vnc.biz
|
||||||
|
BROADCASTID=broadcast-gel4it1o9fvi@vnc.biz
|
||||||
|
BCTITLE=Factory - VNC Hybridauth2
|
||||||
|
BCRECEIPIENTS=leonidas.apostolidis@vnc.biz
|
||||||
|
BCRESTURL=https://xmpp.vnc.biz/rest
|
||||||
Executable
+77
@@ -0,0 +1,77 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#######
|
||||||
|
# Use Jenkins env vars if set otherwise use the gitlab-ci ones
|
||||||
|
BUILD_URL=${BUILD_URL:-$CI_PIPELINE_URL}
|
||||||
|
BRANCH_NAME=${BRANCH_NAME:-$CI_COMMIT_REF_NAME}
|
||||||
|
#######
|
||||||
|
|
||||||
|
echo "BRANCH: $BRANCH_NAME"
|
||||||
|
|
||||||
|
if [ -f result.txt ]; then
|
||||||
|
RESULT=$(cat result.txt)
|
||||||
|
#debug
|
||||||
|
echo "result:"
|
||||||
|
cat result.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f code-analysis.txt ]; then
|
||||||
|
CODEERR=$(cat code-analysis.txt)
|
||||||
|
#debug
|
||||||
|
echo "code-analysis"
|
||||||
|
cat code-analysis.txt
|
||||||
|
fi
|
||||||
|
|
||||||
|
AUTHOR=$(git log -1 | grep "^Author: " | awk -F "Author:" '{print $2}' | awk -F "<" '{print $1}')
|
||||||
|
|
||||||
|
echo "All local branches:"; git branch
|
||||||
|
echo "BRANCH_NAME: $BRANCH_NAME"
|
||||||
|
|
||||||
|
JCHANGELOG=$(git log --pretty=format:%s origin/master..origin/$BRANCH_NAME | nl)
|
||||||
|
|
||||||
|
echo "changes:"
|
||||||
|
echo "$JCHANGELOG"
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$RESULT" ]; then
|
||||||
|
echo "$BUILD_URL - $RESULT"
|
||||||
|
case $RESULT in
|
||||||
|
SUCCESS|success)
|
||||||
|
if [ "$BRANCH_NAME" = "master" ]; then
|
||||||
|
echo -e "job succesfully finished: $BUILD_URL \n Changes: \n $JCHANGELOG" | ./tools/sendbroadcast.sh
|
||||||
|
# nagzillac "room^vncmail__project@conference.vnc.biz^job succesfully finished: $BUILD_URL - new APK is available at https://basepackages.vnc.biz/apk/VNCmail-2.0.0-$BUILD_ID.apk"
|
||||||
|
else
|
||||||
|
echo -e "job succesfully finished: $BUILD_URL \n Changes: \n $JCHANGELOG \n Author: $AUTHOR" | ./tools/sendbroadcast.sh
|
||||||
|
# nagzillac "room^vncmail__project@conference.vnc.biz^job succesfully finished: $BUILD_URL"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
UNSTABLE|WARNING|unstable)
|
||||||
|
if [ "$CODEERR" ]; then
|
||||||
|
if [ "$BRANCH_NAME" = "master" ]; then
|
||||||
|
echo -e "job finished with warnings: $BUILD_URL \n $CODEERR \n Changes: \n $JCHANGELOG " | ./tools/sendbroadcast.sh
|
||||||
|
# nagzillac "room^vncmail__project@conference.vnc.biz^job finished with warnings: $BUILD_URL \n $CODEERR \n new APK is available at https://basepackages.vnc.biz/apk/VNCmail-2.0.0-$BUILD_ID.apk"
|
||||||
|
else
|
||||||
|
echo -e "job finished with warnings: $BUILD_URL \n $CODEERR \n Changes: \n $JCHANGELOG \n Author: $AUTHOR" | ./tools/sendbroadcast.sh
|
||||||
|
# nagzillac "room^vncmail__project@conference.vnc.biz^job finished with warnings: $BUILD_URL \n $CODEERR"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -e "job finished with warnings: $BUILD_URL \n Changes: \n $JCHANGELOG \n Author: $AUTHOR" | ./tools/sendbroadcast.sh
|
||||||
|
#nagzillac "room^vncmail__project@conference.vnc.biz^job finished with warnings: $BUILD_URL"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
FAILURE)
|
||||||
|
if [ "$CODEERR" ]; then
|
||||||
|
CODENUM=$(wc -l code-analysis.txt | awk '{print $1}')
|
||||||
|
echo -e "job FAILED - please check: $BUILD_URL \n code analysis found $CODENUM errors \n $CODEERR \n\n Changes: \n $JCHANGELOG \n Author: $AUTHOR" | ./tools/sendbroadcast.sh
|
||||||
|
# nagzillac "room^vncmail__project@conference.vnc.biz^job FAILED - please check: $BUILD_URL \n code analysis found $CODENUM errors"
|
||||||
|
else
|
||||||
|
echo -e "job FAILED - please check: $BUILD_URL immediately \n Changes: \n $JCHANGELOG \n Author: $AUTHOR" | ./tools/sendbroadcast.sh
|
||||||
|
# nagzillac "room^vncmail__project@conference.vnc.biz^job FAILED - please check: $BUILD_URL immediately"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo -e "job finished with ambigous result - please check: $BUILD_URL immediately \n Changes: \n $JCHANGELOG \n Author: $AUTHOR" | ./tools/sendbroadcast.sh
|
||||||
|
# nagzillac "chat^stefan.saenger@vnc.biz^job finished with ambigous result - please check: $BUILD_URL immediately"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
Executable
+42
@@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
BCBODY=`cat`
|
||||||
|
|
||||||
|
function die_err() {
|
||||||
|
echo "$0: $*" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
OldPWD=$(pwd)
|
||||||
|
BaseDir=$(git rev-parse --show-toplevel)
|
||||||
|
cd "$BaseDir" || exit 1
|
||||||
|
|
||||||
|
|
||||||
|
CURLCRED="vnctalk:ohtai2Eicai4aiting7bec2am6Aih"
|
||||||
|
|
||||||
|
if [ -f "tools/broadcast.cfg" ]; then
|
||||||
|
echo "found config"
|
||||||
|
else
|
||||||
|
cd "$OldPWD" || exit 1
|
||||||
|
die_err "no broadcst config - bailing out"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RECEIPIENTS=$(cat tools/broadcast.cfg | grep "^BCRECEIPIENTS" | awk -F "=" '{print $2}' | tr ',' '\n' | awk '{print "<to>" $0 "</to>"}' | sed 's/ //g' | grep -v "<to></to>");
|
||||||
|
BROADCASTSENDER=$(cat tools/broadcast.cfg | grep "^BROADCASTSENDER" | awk -F "=" '{print $2}');
|
||||||
|
BROADCASTID=$(cat tools/broadcast.cfg | grep "^BROADCASTID" | awk -F "=" '{print $2}');
|
||||||
|
BCTITLE=$(cat tools/broadcast.cfg | grep "^BCTITLE" | awk -F "=" '{print $2}');
|
||||||
|
MSGID=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
|
||||||
|
BCRESTURL=$(cat tools/broadcast.cfg | grep "^BCRESTURL" | awk -F "=" '{print $2}');
|
||||||
|
|
||||||
|
echo "<message xmlns=\"jabber:client\" type=\"normal\" id=\"$MSGID\" to=\"$BROADCASTID\" from=\"$BROADCASTSENDER\">" > "/tmp/$MSGID.xml"
|
||||||
|
echo "<body>$BCBODY</body>" >> "/tmp/$MSGID.xml"
|
||||||
|
echo "<vncTalkBroadcast xmlns=\"xmpp:vnctalk\" title=\"$BCTITLE\">" >> "/tmp/$MSGID.xml"
|
||||||
|
echo "$RECEIPIENTS" >> "/tmp/$MSGID.xml"
|
||||||
|
echo " </vncTalkBroadcast>
|
||||||
|
</message>" >> "/tmp/$MSGID.xml"
|
||||||
|
|
||||||
|
echo "raw message:"
|
||||||
|
cat "/tmp/$MSGID.xml"
|
||||||
|
|
||||||
|
curl -u "$CURLCRED" -H "Content-Type: text/xml" -X POST --data-binary "@/tmp/$MSGID.xml" "$BCRESTURL"
|
||||||
Reference in New Issue
Block a user