#!/bin/bash
# 添加部署脚本
# 首先给脚本执行权限 chmod +x ./deploy.sh
# 使用: ./deploy.sh
# 或: ./deploy.sh www // www为最终发布目录的所属用户
# 源码将发布到 destDir设置的目录下
user=${1:-"none"}
# 当前用户密码,用于sudo提权
sudoPwd=""
# 临时目录,多个仓库应该使用不同的临时目录
tmpDir="$(pwd)/.deploy"
# 部署目录不能与脚本所有目录相同
destDir="$(pwd)/destDir"
# 代码仓库目录 deploy:gitlab-ci-token修改为部署令牌和密码,也可以是gitlab用户和密码
repository="http://deploy:gitlab-ci-token@git仓库地址"
echo '初始化目录'
if [ -d $tmpDir ]
then
rm -rf $tmpDir
fi
echo '拉取代码'
git clone $repository $tmpDir
rm -rf $tmpDir/.git
echo '发布代码'
# 拷贝源码到部署目录
cp -rf $tmpDir $destDir
if [ "$user" != "none" ]
then
if [ "$sudoPwd" = "" ]
then
echo '缺少用户密码'
exit 1
fi
# 修改目录权限
echo "$sudoPwd" | sudo -S chown -R $user: $destDir
fi
echo '移除仓库'
rm -rf $tmpDir
echo '发布完成'