gitlab + gitlab-runner 实现项目的自动化部署测试环境与打包

前提:

  环境:一台Ubuntu18.04机器,4核 8g以上,低了卡

一、修改Ubuntu18.04的安装源

  由于网络不行,不改安装源下载东西下载不下来

  1、备份

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

  2、修改默认源为阿里,添加如下代码

    sudo vim /etc/apt/sources.list 

      deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
      deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

  3、更新

    sudo apt-get update

      ---------------修改默认源参考链接

二、安装 docker

  第一种方式:离线安装docker

    第二种方式:官方在线安装

   安装完后配置加速器不然pull镜像有点慢,这个网上很多,阿里、网易、daocloud 都可以

   sudo vim /etc/docker/daemon.json

   {

      "registry-mirrors": ["http://hub-mirror.c.163.com"]

   }

三、docker 安装 gitlab

    1、创建一个gitlab的目录

      mkdir ~/gitlab

    2、进入目录,运行命令安装gitlab

      cd ~/gitlab

      sudo docker run -d --name gitlab  --restart=always   --hostname gitlab.xxx.com  -e GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.xxx.com/'; gitlab_rails['lfs_enabled'] = true;" 

         -p 443:443 -p 80:80 -p 22:22 -v $PWD/config:/etc/gitlab   -v $PWD/logs:/var/log/gitlab  -v $PWD/data:/var/opt/gitlab  gitlab/gitlab-ce

    ---参考docker安装gitlab的url

    访问网址,应该是成功的

    3、修改gitlab的80端口

      1)需要修改 etc/gitlab.rb 中 external_url="http://gitlab.xxx.com:801/"

      2)添加 nginx['listen_port'] = 801

      3)-p 801:801

四、安装gitlab-runner

   1、命令安装

      sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

      sudo chmod +x /usr/local/bin/gitlab-runner

      sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash

      sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner

      sudo gitlab-runner start

      2、注册gitlab-runner

      sudo gitlab-runner register,根据提示依次输入

      1)输入gitlab的网址       http://gitlab.xxx.com/

      2)输入gitlab的token     管理员登录到gitlab在 admin area 的 runners 里面

      3)输入描述                   自动化部署测试环境与打包app

      4)输入tag                     autotest

      5)输入executor            shell

      完成...,需要注意的是 gitlab-runner 这个用户需要 root 权限,不然权限不够

     3、给 gitlab-runner 用户提升权限

      sudo vim /etc/passwd

      把gitlab-runner那一行的数字改成0 就可以了,注意观察 root 那一行,对比修改

五、创建项目编写自动化部署脚本

   编写在项目中创建 .gitlab-ci.yml,gitlab-ci编写参考网址

   参考脚本,脚本中用到了 npm 与 dotnet-cli,自行下载安装,网不好的 npm 一定要用国内的源,不然要卡死

   npm config set registry http://registry.npm.taobao.org

    需要注意的是,gitlab-runner 中对特殊符号支持不好,最好编写脚本来做,比如 if 语句等。

六:流程大体思路

  1、开发人员开发完成后,提交一个合并请求到 dev 分支,受理人为测试人员,测试人员点击合并后,触发自动化部署测试环境脚本,部署程序

   2、测试人员测试完成后,提issue,如果有问题,修改bug,没有大的问题,合并到master,并创建一个 tag ,触发自动化打包的脚本

------------------写的不好,不喜勿喷。

原文地址:https://www.cnblogs.com/wh-blog/p/11326751.html