多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
``` #!/bin/bash # 1.定义环境变量[php容器、git仓库信息、容器内生产环境目录、容器内测试环境目录] php_container_name="lnmp_php74" git_repo="https://codeup.aliyun.com/6409d268e9f200d37adc2ffd/test.git" production_branch="master" develop_branch="dev" production_dir="/wwwroot/test/production/test" develop_dir="/wwwroot/test/dev/test" # 2.切换到测试环境 start_time=$(date "+%Y-%m-%d %H:%M:%S") # 格式化时间并记录开始时间 start_timestamp=$(date -d "$start_time" +%s) # 将开始时间转换为时间戳 echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~部署测试环境(开始部署时间:$start_time)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" # 检查目录是否存在 if [ -d "$develop_dir" ]; then echo "Git测试环境目录已存在,正在切换到测试环境目录<$develop_dir>" cd $develop_dir echo "测试环境目录<$develop_dir>已切换,正在拉取最新代码到服务器测试环境" git -C "$develop_dir" pull echo "最新代码拉取到服务器测试环境已完成" else echo "Git测试环境目录不存在,正在克隆代码到测试环境目录" git clone -b "$develop_branch" "$git_repo" "$develop_dir" echo "克隆代码到服务器测试环境已完成" fi # ... (其他部署步骤) end_time=$(date "+%Y-%m-%d %H:%M:%S") # 记录结束时间 end_timestamp=$(date -d "$end_time" +%s) # 将结束时间转换为时间戳 # 计算耗时 duration=$((end_timestamp - start_timestamp)) # 格式化耗时 hours=$((duration / 3600)) minutes=$(((duration % 3600) / 60)) seconds=$((duration % 60)) echo "部署测试环境已完成,耗时:${hours}小时 ${minutes}分钟 ${seconds}秒" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~部署测试环境(部署完成时间:$end_time)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" ```