coze-studio/frontend/scripts/publish-pro.sh

148 lines
4.1 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# The script is used to execute the package publishing logic within the SCM
source ./scripts/scm_base.sh
# Prepare
prepare_environment
# ignore install
export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=true
export CYPRESS_INSTALL_BINARY=0
export TAIKO_SKIP_CHROMIUM_DOWNLOAD=0
export RE2_DOWNLOAD_SKIP_PATH=1
export RE2_DOWNLOAD_MIRROR=https://bnpm.bytedance.net/mirrors
# custom_env
export NPM_AUTH_TOKEN=$CUSTOM_NPM_AUTH_TOKEN
export GITLAB_TOKEN=$CUSTOM_GITLAB_TOKEN
export CODEBASE_JWT=$CUSTOM_CODEBASE_JWT
export COZE_HUB_APP_ID=$CUSTOM_COZE_HUB_APP_ID
export COZE_HUB_KEY_ID=$CUSTOM_COZE_HUB_KEY_ID
export COZE_HUB_PRIVATE_KEY=$CUSTOM_COZE_HUB_PRIVATE_KEY
export DEBUG=$CUSTOM_DEBUG
# resolve 400 error https://bytedance.feishu.cn/wiki/wikcnOUP2D6rGipIaN8q7UdzO0e
export CI_NAME=allow_same_version_$BUILD_VERSION
export DEFAULT_BRANCH=$BUILD_REPO_BRANCH
export WEBHOOK_URL=$CUSTOM_WEBHOOK_URL
# publish type example: beta or alpha
PUBLISH_TYPE=$CUSTOM_PUBLISH_TYPE
# use for npm tag
PUBLISH_TAG=$CUSTOM_PUBLISH_TAG
# only beta use for now
PATCH_TAG=$CUSTOM_PATCH_TAG
BY_DIFF=$CUSTOM_BY_DIFF
# to packages
TO_PACKAGES=$CUSTOM_TO_PACKAGES
# from tag
FROM_TAG=$CUSTOM_FROM_TAG
# independent
INDEPENDENT=$CUSTOM_INDEPENDENT
# scm env
BUILD_USER=$BUILD_USER
# version or publiish or tag
MODE=$CUSTOM_MODE
# publish sha
PUBLISH_SHA=$CUSTOM_PUBLISH_SHA
# just list and detch not version
LIST_ONLY=$CUSTOM_LIST_ONLY
initialization() {
# npm
npm config set registry https://bnpm.byted.org
npm config set //bnpm.byted.org/:_authToken $NPM_AUTH_TOKEN
npm whoami
# git
git config user.name ci_flow
git config user.email ci_flow@bytedance.com
git remote set-url origin https://bot-studio-monorepo:$GITLAB_TOKEN@code.byted.org/obric/bot-studio-monorepo.git
}
fetch() {
git fetch --filter=blob:none --unshallow -q
}
initialization
echo "to packages"
echo $TO_PACKAGES
echo "from tag"
echo $FROM_TAG
if [ -n "${PUBLISH_TAG}" ]; then
PUBLISH_TAG="--tag ${PUBLISH_TAG}"
fi
if [ -n "${PUBLISH_TYPE}" ]; then
PUBLISH_TYPE="--pre ${PUBLISH_TYPE}"
fi
if [ -n "${WEBHOOK_URL}" ]; then
WEBHOOK_URL="-w ${WEBHOOK_URL}"
fi
if [ -n "${BUILD_USER}" ]; then
BUILD_USER="-a ${BUILD_USER}"
fi
echo "安装依赖"
node infra/rush-increment-install/lib/index.js
node common/scripts/install-run-rush.js build -t @coze/cli -v
if [ "$MODE" == "version" -o "$MODE" == "multiple" ]; then
echo "获取仓库 tags 列表"
fetch
echo "计算版本更新列表"
# Copy output to root dir
mkdir -p $ROOT_DIR/output
OUTPUT_COMMAND="node ee/infra/rush-x/bin/run version --list $PUBLISH_TYPE $PUBLISH_TAG $PATCH_TAG $TO_PACKAGES $FROM_TAG $BY_DIFF $INDEPENDENT -b $DEFAULT_BRANCH"
$OUTPUT_COMMAND >>$ROOT_DIR/output/output.txt
if [ "$LIST_ONLY" != "true" ]; then
echo "版本更新列表写入 output.txt"
echo "执行 version"
if [ "$MODE" == "multiple" ]; then
# In multiple mode, only the result of the publish step can be output
node ee/infra/rush-x/bin/run version $PUBLISH_TYPE $PUBLISH_TAG $PATCH_TAG $TO_PACKAGES $FROM_TAG $BY_DIFF $INDEPENDENT -b $DEFAULT_BRANCH
else
node ee/infra/rush-x/bin/run version $PUBLISH_TYPE $PUBLISH_TAG $PATCH_TAG $TO_PACKAGES $FROM_TAG $BY_DIFF $INDEPENDENT $WEBHOOK_URL $BUILD_USER -b $DEFAULT_BRANCH
fi
echo "version 完成"
fi
fi
if [ "$MODE" == "multiple" ]; then
PUBLISH_SHA=$(git rev-parse HEAD)
fi
if [ "$MODE" == "publish" -o "$MODE" == "multiple" ]; then
mkdir -p $ROOT_DIR/output
echo "Publish sha $PUBLISH_SHA"
echo "Publish sha $PUBLISH_SHA" >>$ROOT_DIR/output/output.txt
echo "执行 publish"
node ee/infra/rush-x/bin/run publish --sha $PUBLISH_SHA $PUBLISH_TAG $WEBHOOK_URL $BUILD_USER
echo "publish 完成"
fi
# Update distTag
if [ "$MODE" == "tag" ]; then
fetch
mkdir -p $ROOT_DIR/output
echo "Publish sha $PUBLISH_SHA"
echo "Publish sha $PUBLISH_SHA" >>$ROOT_DIR/output/output.txt
echo "执行 dist tag"
# The point WEBHOOK_URL are basically different in different modes, and you need to pay attention when passing parameters again
node ee/infra/rush-x/bin/run publish --sha $PUBLISH_SHA $PUBLISH_TAG --dist-tag $WEBHOOK_URL $BUILD_USER
echo "dist-tag 完成"
fi