video-flow-b/compile_dev.sh
2025-09-29 15:23:27 +08:00

85 lines
2.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
BRANCH_NAME="dev"
# 修改项目名称
PROJECT_NAME="video-flow-$BRANCH_NAME-frontend"
# 设置日志文件路径
LOGFILE="build_and_copy.log"
# 记录开始时间
echo "Build process started at $(date)" | tee $LOGFILE
# 获取当前分支名
current_branch=$(git rev-parse --abbrev-ref HEAD)
# 指定并加载环境变量文件dev 使用 .env.development
ENV_FILE=".env.development"
if [ -f "$ENV_FILE" ]; then
echo "Loading environment from $ENV_FILE" | tee -a $LOGFILE
set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a
else
echo "未找到 $ENV_FILE,继续使用当前环境变量" | tee -a $LOGFILE
fi
# 设置 NODE_ENV 为 development避免默认使用 production
export NODE_ENV="development"
# 打包之前,需要检查是否在 dev 分支,工作区是否干净,是否和远程分支一致
if [ "$(git branch --show-current)" != "$BRANCH_NAME" ]; then
echo "当前分支不是 dev 分支"
exit 1
fi
# 检查工作区是否干净
if [ -n "$(git status --porcelain)" ]; then
echo "工作区不干净"
exit 1
fi
# 检查远程分支是否和本地分支一致
if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/$BRANCH_NAME)" ]; then
echo "本地分支和远程分支不一致"
exit 1
fi
# 检查当前分支并运行相应的 npm 命令
if [ "$current_branch" = "$BRANCH_NAME" ]; then
echo "On dev branch, building project..." | tee -a $LOGFILE
PROFILE_ENV=$BRANCH_NAME
# 安装依赖并构建
yarn install
yarn build
# 准备dist目录
mkdir -p dist
cp -r .next dist/
cp -r public dist/
cp package.json dist/
cp package-lock.json dist/
else
echo "On non-dev branch ($current_branch), exiting"
exit 1
fi
# 创建tar包
tar -czvf $PROJECT_NAME-$PROFILE_ENV.tar.gz dist
# 记录结束时间
echo "Build process completed at $(date)" | tee -a $LOGFILE
# 上传到 nexus
echo "upload to nexus at $(date)" | tee -a $LOGFILE
curl -u 'admin':'YZ9Gq6=8\*G|?:,' --upload-file $PROJECT_NAME-$PROFILE_ENV.tar.gz https://repo.qikongjian.com/repository/frontend-tar-files/
# 清理构建文件
rm -rf dist
rm $PROJECT_NAME-$PROFILE_ENV.tar.gz