文章目录
  1. 1. 目标
  2. 2. 需求:
  3. 3. 结构:
    1. 3.0.1. 主要结构分为4部分:
  • 4. 工作流程
  • 5. 工程文件内容:
    1. 5.1. 流程举例:
    2. 5.2. gitlab-runner: 配置举例 (目前192.168.1.184地址配置了gitlab-runner)
  • 6. 相关链接:
  • 7. TIPS:
  • 目标

    提交代码后,根据以有的配置,自动触发,进行代码测试程序或者程序的部署。

    需求:

    目前项目中,需要管理多个版本(32位,64位)的补丁包。每次修改完代码,提交后,都需要人手动在安装或者测试机器上,编译,安装,运行。
    为将这个流程自动化,可采用gitlab 与gitlab CI (continous intergration)来实现其自动化。
    针对于目前客户端侧不同企业,需要生成特定的客户端版本,也可以让其自动化。

    结构:

    struct

    主要结构分为4部分:

    • 目标机器
      包含:1.测试机器;2.部署机器;
    • git与gitlab-ci(可持续集成服务)
      用于保存代码,与解析.gitlab-ciyml文件,触发 持续集成动作
    • git 客户端
      使用git 客户端提交代码的最终用户

      工作流程

    1. 用户U1,使用git 客户端,建立一个项目 repo1;
    2. repos1项目中包含文件:
    1
    2
    >(repos1)$ ls -a
    . .. .git .gitlab-ci.yml readme
    1. 修改readme文件
    1
    2
    3
    git add readme
    git commit readme -m "add readme";
    git push
    1. git push 执行后,提交到gitlab服务器后,gitlab服务,解析.gitlab-ci.yml,, 触发gitlab-ci-runner去处理, .gitlab-ci.yml中定义的流程;
      (前提是: gitlabci-runner要配置,并注册成功,具体配置操作说明见

    工程文件内容:

    • git 工程
    • .gitlab-ci.yml 文件:
      每个工程下面使用.gitlab-ci.yml文件,来控制提交代码后,gitlab ci 解析yml文件,来获取如何去部署程序。
      gitlab-ci.yml
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    162deploy: # 162
    stage: deploy
    tags:
    - deploy162
    script:
    - "make && make install"
    only:
    - master
    250deploy: # 250
    stage: deploy
    tags:
    - deploy250
    script:
    - "make && make install"
    only:
    - master

    注: yml文件格式必须有tab或空格

    • tags
      deploy162, deploy250 分别指在192.168.1.162、192.168.1.250上运行的gitlab-ci-runner的名称,gitlab-ci是根据.gitlab-ci.yml中的tags来匹配具体任务由哪个runner来处理。
      上面的script是指编译安装程序。
    • script
      make && make install是指要部署到相应的服务器上时,需要执行的脚本命令.对于需要编译的程序而言,就是编译安装,而对于php等web程序而言,就是把代码复制到相应的安装目录。

    流程举例:

    流程如下:
    demo

    gitlab-runner: 配置举例 (目前192.168.1.184地址配置了gitlab-runner)

    可登录gitlab网页版,查看当前注册的git-runner

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    [email protected] ~ $ cat /etc/gitlab-runner/config.toml
    concurrent = 1
    [[runners]]
    url = "http://192.168.1.240/ci"
    token = "fb8b064e53e21159e268853af6f8ea"
    name = "Sict162"
    limit = 1
    executor = "ssh"
    builds_dir = "/Data/git_build"
    [runners.ssh]
    user = "root"
    host = "192.168.1.162"
    port = "2222"
    identity_file = "/home/michael/.ssh/id_rsa"
    [[runners]]
    url = "http://192.168.1.240/ci"
    token = "18795ba96cfe74478ee63ff7decedd"
    name = "Sict250"
    limit = 1
    executor = "ssh"
    builds_dir = "/Data/git_build"
    [runners.ssh]
    user = "root"
    host = "192.168.1.250"
    port = "2222"
    identity_file = "/home/michael/.ssh/id_rsa"
    [[runners]]
    url = "http://192.168.1.240/ci"
    token = "87aa2b2c0f5779d5e01f9d731fb6e4"
    name = "Sict236"
    executor = "ssh"
    builds_dir = "/Data/git_build"
    [runners.ssh]
    user = "root"
    host = "192.168.1.236"
    port = "2222"
    identity_file = "/home/michael/.ssh/id_rsa"

    相关链接:

    TIPS:

    在提交时添加[ci skip]可以,跳过gitlab-ci检测。
    
    文章目录
    1. 1. 目标
    2. 2. 需求:
    3. 3. 结构:
      1. 3.0.1. 主要结构分为4部分:
  • 4. 工作流程
  • 5. 工程文件内容:
    1. 5.1. 流程举例:
    2. 5.2. gitlab-runner: 配置举例 (目前192.168.1.184地址配置了gitlab-runner)
  • 6. 相关链接:
  • 7. TIPS: