ci: 添加联调,预发布环境ci构建通知,同时包含xhj,sky旗下不同产

This commit is contained in:
Liuyf 2024-12-02 17:24:27 +08:00
parent ef6e903ec9
commit 52210c6368
2 changed files with 65 additions and 0 deletions

View File

@ -21,6 +21,15 @@ variables:
- if: $CI_COMMIT_BRANCH == "canary_release"
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/
.notify_rule:
tags:
- macos
- flutter
rules:
- if: $CI_COMMIT_BRANCH == "develop"
- if: $CI_COMMIT_BRANCH == "release"
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
.generate_tag_rule:
tags:
- macos
@ -173,3 +182,23 @@ create-release:
- name: 'sky ipa binary package'
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.ipa'
link_type: 'package'
notify_success:
stage: notification
extends: .notify_rule
before_script:
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
script:
- bash notify.sh success
allow_failure: true
when: on_success
notify_failure:
stage: notification
extends: .notify_rule
before_script:
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
script:
- bash notify.sh failure
allow_failure: true
when: on_failure

36
notify.sh Executable file
View File

@ -0,0 +1,36 @@
#!/bin/bash
set -e
APP_PRODUCT_NAME=$APP_PRODUCT_NAME
BUILD_STATUS=$1
if [[ "${CI_COMMIT_BRANCH}" == "release" ]] ; then
WECAHT_WEBHOOK_URL=$PRE_QYWECAHT_WEBHOOK_URL
SKY_IOS_DOWNLOAD_URL=$PRE_SKY_IOS_DOWNLOAD_URL
SKY_ANDROID_DOWNLOAD_URL=$PRE_SKY_ANDROID_DOWNLOAD_URL
XHJ_IOS_DOWNLOAD_URL=$PRE_XHJ_IOS_DOWNLOAD_URL
XHJ_ANDROID_DOWNLOAD_URL=$PRE_XHJ_ANDROID_DOWNLOAD_URL
elif [[ "${CI_COMMIT_BRANCH}" == "develop" ]] || [[ "${CI_COMMIT_BRANCH}" == "feat_devops" ]]; then
WECAHT_WEBHOOK_URL=$DEV_QYWECAHT_WEBHOOK_URL
SKY_IOS_DOWNLOAD_URL=$DEV_SKY_IOS_DOWNLOAD_URL
SKY_ANDROID_DOWNLOAD_URL=$DEV_SKY_ANDROID_DOWNLOAD_URL
XHJ_IOS_DOWNLOAD_URL=$DEV_XHJ_IOS_DOWNLOAD_URL
XHJ_ANDROID_DOWNLOAD_URL=$DEV_XHJ_ANDROID_DOWNLOAD_URL
fi
if [[ "${BUILD_STATUS}" == "success" ]]; then
TITLE="😎 构建成功"
BUILD_STATUS_DESC="成功"
NOTIFICATION_CONENT='{"msgtype":"markdown","markdown":{"content":"'$TITLE'\n> **项目名称**: '$APP_PRODUCT_NAME'\n> **分支**: '$CI_COMMIT_REF_NAME'\n> **构建状态**: '$BUILD_STATUS_DESC'\n> **安装地址**:\n 通通公寓 ** [iOS]('$SKY_IOS_DOWNLOAD_URL') ** ** [Android]('$SKY_ANDROID_DOWNLOAD_URL')**\n > ** 星星公寓 ** [iOS]('$XHJ_IOS_DOWNLOAD_URL') ** ** [Android]('$XHJ_ANDROID_DOWNLOAD_URL')** \n> **详情查看**: [构建日志]('$CI_JOB_URL')"}}'
else
TITLE="😥 部署失败"
BUILD_STATUS_DESC="失败"
NOTIFICATION_CONENT='{"msgtype":"markdown","markdown":{"content": "'$TITLE'\n> **项目名称**: '$APP_PRODUCT_NAME'\n> **分支**: '$CI_COMMIT_REF_NAME'\n> **构建状态**: '$BUILD_STATUS_DESC'\n>**详情查看**: [构建日志]('$CI_JOB_URL')"}}'
fi
echo "$NOTIFICATION_CONENT"
JSON_PAYLOAD=$(cat <<EOF
$NOTIFICATION_CONENT
EOF
)
echo "$WECAHT_WEBHOOK_URL"
echo "CI_JOB_STATUS:${CI_JOB_STATUS},APP_PRODUCT_NAME:${APP_PRODUCT_NAME},TITLE:${TITLE},BUILD_STATUS_DESC:${BUILD_STATUS_DESC},WECAHT_WEBHOOK_URL:${WECAHT_WEBHOOK_URL},CI_JOB_URL:${CI_JOB_URL}"
curl $WECAHT_WEBHOOK_URL -X POST -H "Content-Type: application/json" -d "$JSON_PAYLOAD"
exit 0