Gitlab本地代码,自动发布至正式服务器

场景描述

1 Git服务器:centos6.5,本地环境内网运行。
2 正式服务器:windows server 2008,阿里云公网运行

业务需求:能够将Git服务器存储的代码,自动发布至正式服务器上。

准备工具

1、Gitlab >=9.0
2、Gitlab-runner
3、powershell
4、花生壳(免费版)

前置条件

1、Gitlab正确配置,并正常运行。
2、Git服务器内网固定IP (如:192.168.0.19)
3、两台服务器都装有Git同版本的客户端。

本教程默认以上工具和前置条件都已经实现。

安装工具

首先当然是先安装准备工具。

1 安装Gitlab (安装教程百度一下,一大把)
2 给windows服务器安装powershell(安装教程百度一下,一大把)
3 给Git服务器安装花生壳(centos版)(安装教程百度一下,一大把)

配置Gitlab

都安装好之后,先来看Gitlab

以我测试的为例,进入到项目列表,然后选择一个要部署的项目

然后选择 Settings->Pipelines,

Gitlab有两种执行Runner的模式:
一种是Specific Runners,该模式只能作用域当前选择的项目。
另一种是Shared Runners,该模式可以作用域所有项目,但是需要root权限才能创建,一般也用不到这个模式。

我们选择Specific模式

提示中的:2和3项的URL和Token,这两个将是配置Runner的关键信息。

配置Runner

现在打开正式服务器,安装Gitlab-runner,安装好之后,要注册刚才的test项目,过程中需要选择True/False的,选择True。

cmd定位到Gitlab-runner根目录,执行 gitlab-runner.exe register 命令,

将URL和Token填好,监听的分支Tag填写master,表示只有当master变动的时候,才触发自动部署。

然后,在项目根目录创建.gitlab-ci.yml文件,写入以下内容,保存至项目根目录

stages:
    - build
build:
  stage: build
  script:
    # 打开到项目目录
    - cd E:\php\phpStudy\WWW
    # 执行pull操作
    - git pull origin master
  only:
    # 只有master分支才执行
    - master

测试

在Gitlab上,提交一次合并请求,当合并请求被通过时,看同步是否能完成。如果出现对号符号,则表示Updates已经更新至正式服务器

你可能感兴趣的:(心得经验)