gitlab+自动化部署(gitlab基于内网)

2020-01-02  本文已影响0人  Stargazes

情景

假如你在本地的虚拟机或者内网服务器下部署了gitlab,将版本控制本地化或内网化,那如何实现将本地的gitlab仓代码部署到线上的服务器呢?

实现步骤

1.本地搭建gitlab版本控制器
2.将项目部署到本地的gitlab仓库上
3.开发人员正常在内网下上传,克隆代码
4.通过配置gitlab的远程登录服务器,将本地代码推送到远程服务器

实现过程

建立仓库
部署ssh-keys
部署钩子
#!/bin/sh
# example hook script for the "post-receive" event.
#
# The "post-receive" script is run after receive-pack has accepted a pack
# and the repository has been updated.  It is passed arguments in through
# stdin in the form
#  <oldrev> <newrev> <refname>
# For example:
#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
#
# see contrib/hooks/ for a sample, or uncomment the next line and
# rename the file to "post-receive".

#. /usr/share/git-core/contrib/hooks/post-receive-email
while read oldrev newrev ref
do
    branch=$(git rev-parse --symbolic --abbrev-ref $ref)
    if [ "$branch" = "1.0" ]
    then
        git push -f test:/var/www/html/test.git $branch
    fi
done
#!/bin/sh
#
# An example hook script for the "post-receive" event.
#
# The "post-receive" script is run after receive-pack has accepted a pack
# and the repository has been updated.  It is passed arguments in through
# stdin in the form
#  <oldrev> <newrev> <refname>
# For example:
#  aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
#
# see contrib/hooks/ for a sample, or uncomment the next line and
# rename the file to "post-receive".

#. /usr/share/git-core/contrib/hooks/post-receive-email
while read oldrev newrev ref
do
    if [[ $ref =~ .*/1.0$ ]];
    then
        echo "1.0 ref received.  Deploying 1.0 branch to test server..."
        git --work-tree=/var/www/html/test--git-dir=$GIT_DIR checkout -f $ref
    fi
done
 ssh-keyscan -t rsa ip>> ~/.ssh/known_hosts
测试完成
上一篇下一篇

猜你喜欢

热点阅读