#!/bin/bash set -e env='test' base_dir=`pwd` proj_dir="${base_dir}/tmp/proj" bin_dir="${base_dir}/tmp/bin" create_dirs() { if [ -d ${proj_dir} ]; then rm -rf ${proj_dir} fi mkdir -p ${proj_dir} if [ -d ${bin_dir} ]; then rm -rf ${bin_dir} fi mkdir -p ${bin_dir} } ############################################################################### # clone 项目 ############################################################################### clone_proj() { cd ${proj_dir} # git clone --depth=1 https://github.com/reghao/ik-analyzer-solr.git # git clone --depth=1 https://github.com/reghao/jieba-analysis.git # git clone --depth=1 https://git.reghao.cn/reghao/jutil git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/oss git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/tnb git -c http.sslVerify=false clone --depth=1 https://git.reghao.cn/reghao/tnbapp } ############################################################################### # 安装依赖 ############################################################################### build_dependencies() { cd ${proj_dir}/jutil mvn clean install -Dmaven.test.skip cd ${proj_dir}/ik-analyzer-solr mvn clean install -Dmaven.test.skip cd ${proj_dir}/jieba-analysis mvn clean install -Dmaven.test.skip } ############################################################################### # 构建 oss 应用 ############################################################################### build_oss() { ############################################################################### # 构建 oss 项目 jar 包 ############################################################################### cd ${proj_dir}/oss mvn clean install -Dmaven.test.skip -pl oss-sdk -am mvn clean package -Dmaven.test.skip -P${env} cp oss-mgr/target/oss-mgr.jar ${bin_dir} # cp oss-store/bin/oss-store.jar ${bin_dir} docker_prefix='registry.cn-chengdu.aliyuncs.com/tnb028' cd ${proj_dir}/oss/oss-mgr docker build -t ${docker_prefix}/oss-mgr . docker push ${docker_prefix}/oss-mgr } ############################################################################### # 构建后端应用 ############################################################################### build_backend() { ############################################################################### # 构建 tnb 项目 jar 包 ############################################################################### cd ${proj_dir}/tnb mvn clean package -Dmaven.test.skip -P${env} cp gateway/target/tnb-gateway.jar ${bin_dir} cp auth/auth-service/target/tnb-auth.jar ${bin_dir} cp user/user-service/target/tnb-user.jar ${bin_dir} cp message/message-service/target/tnb-message.jar ${bin_dir} cp file/file-service/target/tnb-file.jar ${bin_dir} cp content/content-service/target/tnb-content.jar ${bin_dir} cp data/data-service/target/tnb-data.jar ${bin_dir} cp search/search-service/target/tnb-search.jar ${bin_dir} } ############################################################################### # 构建前端应用 ############################################################################### build_front() { ############################################################################### # 构建 tnbapp 项目 ############################################################################### cd ${proj_dir}/tnbapp npm --registry http://registry.npm.taobao.org i npm run build if [ ! -d ${bin_dir}/tnbapp ]; then mkdir ${bin_dir}/tnbapp fi cp -r dist/* ${bin_dir}/tnbapp } ############################################################################### # 构建 tnb 应用 docker 镜像 ############################################################################### build_image() { cd ${proj_dir}/tnb # commit_id=`git rev-parse HEAD | cut -c 1-8` docker_prefix='registry.cn-chengdu.aliyuncs.com/tnb028' cd ${proj_dir}/tnb/gateway/ docker build -t ${docker_prefix}/tnbgateway . docker push ${docker_prefix}/tnbgateway cd ${proj_dir}/tnb/auth/auth-service/ docker build -t ${docker_prefix}/tnbauth . docker push ${docker_prefix}/tnbauth cd ${proj_dir}/tnb/message/message-service/ docker build -t ${docker_prefix}/tnbmessage . docker push ${docker_prefix}/tnbmessage cd ${proj_dir}/tnb/file/file-service docker build -t ${docker_prefix}/tnbfile . docker push ${docker_prefix}/tnbfile cd ${proj_dir}/tnb/user/user-service/ docker build -t ${docker_prefix}/tnbuser . docker push ${docker_prefix}/tnbuser cd ${proj_dir}/tnb/content/content-service/ docker build -t ${docker_prefix}/tnbcontent . docker push ${docker_prefix}/tnbcontent cd ${proj_dir}/tnb/search/search-service/ docker build -t ${docker_prefix}/tnbsearch . docker push ${docker_prefix}/tnbsearch cd ${proj_dir}/tnbapp commit_id=`git rev-parse HEAD | cut -c 1-8` docker build -t ${docker_prefix}/tnbapp . docker push ${docker_prefix}/tnbapp } echo "创建 proj 目录和 bin 目录..." create_dirs echo "clone 项目..." clone_proj # echo "构建依赖..." # build_dependencies echo "构建 oss 应用..." build_oss echo "构建后端应用..." build_backend echo "构建前端应用..." build_front echo "构建 docker 镜像..." build_image