diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7fc3fcae..0fab83ce 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -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
\ No newline at end of file
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/debug-pre-sky.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/debug-pre-sky.xcscheme
new file mode 100644
index 00000000..4d225c50
--- /dev/null
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/debug-pre-sky.xcscheme
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/debug-pre-xhj.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/debug-pre-xhj.xcscheme
new file mode 100644
index 00000000..82c05aa5
--- /dev/null
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/debug-pre-xhj.xcscheme
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/notify.sh b/notify.sh
new file mode 100755
index 00000000..f1f9919f
--- /dev/null
+++ b/notify.sh
@@ -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 <