#!/bin/bash #记录开始时间 startTime=$(date +%s) # 登录到目标环境 baseDir="/home/somuns/ci4s" cd ${baseDir} #build # 默认参数 branch="master" service="manage-front" env="dev" # show_help() { echo "Usage: $0 [-b branch] [-s service] [-e environment]" echo echo "Options:" echo " -b Branch to deploy, default: master" echo " -s Service to deploy (manage-front, manage, front, all, system default: manage-front)" echo " -e Environment (e.g., dev, test, default: dev)" echo " -h Show this help message" } # 解析命令行选项 while getopts "b:s:e:h" opt; do case $opt in b) branch=$OPTARG ;; s) service=$OPTARG ;; e) env=$OPTARG ;; h) show_help; exit 0 ;; \?) echo "Invalid option -$OPTARG" >&2; show_help; exit 1 ;; esac done # 拉取指定分支的最新代码 echo "Checking out and pulling branch $branch..." git stash git checkout $branch if [ $? -ne 0 ]; then echo "切换到分支 $branch 失败,请检查分支名称是否正确!" exit 1 fi git stash git pull origin $branch if [ $? -ne 0 ]; then echo "拉取代码失败,请检查网络或联系管理员!" exit 1 fi chmod +777 ${baseDir}/k8s/*.sh valid_services=("manage-front" "manage" "front" "all" "auth" "gateway" "system") if [[ ! " ${valid_services[@]} " =~ " $service " ]]; then echo "Invalid service name: $service" >&2 echo "Valid services are: ${valid_services[*]}" exit 1 fi valid_envs=("dev" "test" "test1") if [[ ! " ${valid_envs[@]} " =~ " $env " ]]; then echo "Invalid environment: $env" >&2 echo "Valid environments are: ${valid_envs[*]}" exit 1 fi echo "start build" sh ${baseDir}/k8s/build.sh -b ${branch} -s ${service} if [ $? -ne 0 ]; then echo "Build failed" exit 1 fi echo "build success" # 部署 echo "start deploy" sh ${baseDir}/k8s/deploy.sh -s ${service} -e ${env} if [ $? -ne 0 ]; then echo "Deploy failed" exit 1 fi echo "deploy success" # 记录结束时间 endTime=$(date +%s) # 计算运行时间 duration=$(( $endTime - $startTime )) echo "编译发布总耗时: $duration 秒"