sh脚本拉取线上代码部署网站

#!/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 '发布完成'

添加新评论