diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b1a619f7..f242b4d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,6 +9,7 @@ stages: - build - merge_build - deploy + - notify .build_tsg-buildimage: script: @@ -43,6 +44,17 @@ stages: tags: - tsg-os-builder-el8 +.notify_jobs_done: + cache: + key: $CI_COMMIT_REF_SLUG-x86_64_COTS + paths: + - images/ + script: + - chmod +x ./tools/notify-jobs-done.sh + - ./tools/notify-jobs-done.sh + tags: + - tsg-os-builder-el8 + .build_tsg_vm_image: cache: key: $BUILD_OS_CACHE_KEY @@ -68,7 +80,9 @@ stages: - ls -lh images - chmod +x ./tools/upload.sh - ./tools/upload.sh + - TSG_OS_VERSION=$(basename images/*-ONIE.bin | awk -F '-x86_64' '{print $1}') - rm -rf images/* + - echo $TSG_OS_VERSION > images/tsg-os-version.txt tags: - tsg-os-builder-el8 @@ -150,6 +164,16 @@ feature_branch_build_kvm_image_x86_64_COTS: - /^rel-.*$/i - /^update-.*$/i +feature_branch_notify_jobs_done_x86_64_COTS: + image: $BUILD_BASED_IMAGE_ROCKYLINUX8 + stage: notify + extends: .notify_jobs_done + except: + - tags + - /^dev-.*$/i + - /^rel-.*$/i + - /^update-.*$/i + # develop_build_7400_mcn0: # image: $BUILD_BASED_IMAGE_CENTOS7 # stage: build @@ -234,6 +258,13 @@ develop_build_kvm_image_x86_64_COTS: only: - /^dev-.*$/i +develop_notify_jobs_done_x86_64_COTS: + image: $BUILD_BASED_IMAGE_ROCKYLINUX8 + stage: notify + extends: .notify_jobs_done + only: + - /^dev-.*$/i + # testing_build_7400_mcn0: # image: $BUILD_BASED_IMAGE_CENTOS7 # stage: build @@ -318,6 +349,15 @@ testing_build_kvm_image_x86_64_COTS: only: - /^rel-.*$/i +testing_notify_jobs_done_x86_64_COTS: + image: $BUILD_BASED_IMAGE_ROCKYLINUX8 + stage: notify + extends: .notify_jobs_done + variables: + ENABLE_NOTIFY_TESTING_JOBS_DONE: 1 + only: + - /^rel-.*$/i + # rc_build_7400_mcn0: # image: $BUILD_BASED_IMAGE_CENTOS7 # stage: build @@ -402,6 +442,16 @@ rc_build_kvm_image_x86_64_COTS: only: - /^.*-rc.*$/i +rc_notify_jobs_done_x86_64_COTS: + image: $BUILD_BASED_IMAGE_ROCKYLINUX8 + stage: notify + extends: .notify_jobs_done + variables: + ENABLE_NOTIFY_RC_JOBS_DONE: 1 + only: + - /^.*-rc.*$/i + + # release_build_7400_mcn0: # image: $BUILD_BASED_IMAGE_CENTOS7 # stage: build @@ -495,3 +545,14 @@ release_build_kvm_image_x86_64_COTS: - tags except: - /^.*-rc.*$/i + +release_notify_jobs_done_x86_64_COTS: + image: $BUILD_BASED_IMAGE_ROCKYLINUX8 + stage: notify + extends: .notify_jobs_done + variables: + ENABLE_NOTIFY_RELEASE_JOBS_DONE: 1 + only: + - tags + except: + - /^.*-rc.*$/i diff --git a/tools/notify-jobs-done.sh b/tools/notify-jobs-done.sh new file mode 100644 index 00000000..c10bbbcb --- /dev/null +++ b/tools/notify-jobs-done.sh @@ -0,0 +1,18 @@ +#!/bin/sh -x +ls -halt $CI_PROJECT_DIR/images/ +TSG_OS_VERSION_FILE="$CI_PROJECT_DIR/images/tsg-os-version.txt" + + +TSG_OS_VERSION= +if [ -f $TSG_OS_VERSION_FILE ]; then TSG_OS_VERSION=$(cat $TSG_OS_VERSION_FILE); fi +echo $TSG_OS_VERSION + +NOTIFY_CONTENT="{\"msgtype\": \"text\",\"text\": {\"content\": \"TSG-OS version: $TSG_OS_VERSION has been generated.\",\"mentioned_list\":[\"@all\"]}}" +echo $NOTIFY_CONTENT + +if [ -z "$TSG_OS_VERSION" ]; then echo "TSG_OS version: $TSG_OS_VERSION is NULL."; exit 1; fi +if [ -n "$ENABLE_NOTIFY_TESTING_JOBS_DONE" ] && [ "$ENABLE_NOTIFY_TESTING_JOBS_DONE" == "1" ]; then curl "$NOTIFY_TESTING_JOBS_DONE_WEBHOOK" -H "Content-Type: application/json" -d "$NOTIFY_CONTENT"; fi +if [ -n "$ENABLE_NOTIFY_RC_JOBS_DONE" ] && [ "$ENABLE_NOTIFY_RC_JOBS_DONE" == "1" ]; then curl "$NOTIFY_RC_JOBS_DONE_WEBHOOK" -H "Content-Type: application/json" -d "$NOTIFY_CONTENT"; fi +if [ -n "$ENABLE_NOTIFY_RELEASE_JOBS_DONE" ] && [ "$ENABLE_NOTIFY_RELEASE_JOBS_DONE" == "1" ]; then curl "$NOTIFY_RELEASE_JOBS_DONE_WEBHOOK" -H "Content-Type: application/json" -d "$NOTIFY_CONTENT"; fi + +rm -rf $TSG_OS_VERSION_FILE \ No newline at end of file