我使用GitLab CI进行审核/阶段/制作的部署任务。部署当前通过rsync工作。
项目在git中有文件,但也可以在项目所有者的生产中直接从app的管理界面进行更改。
所以我需要解决方案来检查生产服务器上的文件是否已更改,然后创建新分支并将其推送回存储库。然后使用消息&#34失败部署任务;请合并生产更改"。
我尝试使用bash脚本执行此操作:
# $1 GITLAB_USER_ID
# $2 CI_BUILD_REF
# $3 CI_PROJECT_NAMESPACE
# $4 CI_PROJECT_NAME
# $5 CI_BUILD_REF_NAME
if [[ "$1" == 1 ]] || [[ "$1" == 2 ]] || [[ "$1" == 3 ]]; then
echo "Deploy to production server"
mkdir "/tmp/depl_$2"
cd "/tmp/depl_$2"
git clone git@privategitlab.host:$3/$4.git
git fetch --all
download.sh production
git checkout -b unmerged-$2
git commit -m "from server"
git push -u origin unmerged-$2
else
echo "Deploy not allowed for you"
exit 1
fi
但我有两个问题: