gitLab进行CI配置记录

主要配置如下

image: wangzhiying/ubuntu_ci:v1

mainCode:
    tags:
      - kxt
    only:
        - master
    before_script:
        - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'
        - eval $(ssh-agent -s)
        - echo "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null
        - mkdir -p ~/.ssh
        - chmod 700 ~/.ssh
        - echo "${SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts
        - chmod 644 ~/.ssh/known_hosts
    script:
#         #调整目录权限,保障这边用户组与服务器端需要的一致
        - groupadd www
        - useradd -g www -s /sbin/nologin www
        - chown -R www:www *
        - chmod -R 755 ./ * #星号前面空格自己去掉
         #主要同步代码的命令,可以在这里排除一些文件,同步权限,配置服务器的项目路径等。重点参考rsync命令的用法。
        - rsync -aztpu --delete --exclude-from ".gitlab-exclude" -e "ssh -p 2221" ./ 服务器账号@服务器地址:目录地址
testCode:
    tags:
      - kxt_test
    only:
      - develop
    before_script:
        - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'
        - eval $(ssh-agent -s)
        - echo "${TEST_SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null
        - mkdir -p ~/.ssh
        - chmod 700 ~/.ssh
        - echo "${TEST_SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts
        - chmod 644 ~/.ssh/known_hosts
    script:
        #调整目录权限,保障这边用户组与服务器端需要的一致
        - groupadd www
        - useradd -g www -s /sbin/nologin www
        - chown -R www:www *
        - chmod -R 755 ./ * #星号前面空格自己去掉
        #主要同步代码的命令,可以在这里排除一些文件,同步权限,配置服务器的项目路径等。重点参考rsync命令的用法。
        - rsync -aztpu --delete --exclude-from ".gitlab-exclude" ./ 服务器账号@服务器地址:目录地址

CI配置说明

  1. only 配置决定需要构建的分支,当该分支有变动时会执行流水线操作

  2. 比如一些SSH_PRIVATE_KEY或者TEST_SSH_PRIVATE_KEY等属于变量、可在gitlab设置-CI/CD-变量中定义(注意部分变量设置受保护的话只能主分支使用)

  3. 这里使用到docker的镜像image: wangzhiying/ubuntu_ci:v1这个镜像是我自己基于ubuntu原始镜像运行命令'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'后生成,主要目的为了加快构建速度,你也可以使用ubuntu镜像

  4. 部分目录或文件不需要同步的话需要在代码目录下新增.gitlab-exclude文件、把需要禁止同步的目录或文件写上

  5. ssh公钥免密登陆服务器的话参考网址https://blog.csdn.net/Hannnnnnnnnnnnn/article/details/110196685(本机对本地也可以,不一定需要本机对远端服务器)

  6. 配置完成后需要进行gitlab-Runner安装

利用docker进行gitlab-runner 安装

  1. 下载镜像

    docker pull gitlab/gitlab-runner:latest
  2. 创建数据卷

    docker volume create gitlab-runner-config
  3. 根据安装类型运行register命令

    docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
  4. 根据提示输入

    1输入您的GitLab实例URL(也称为gitlab-ci coordinator URL)。
    2输入您获得的Token以注册跑步者。
    3输入跑步者的描述。您可以稍后在GitLab用户界面中更改此值。
    4输入与Runner关联的标签,并用逗号分隔。您可以稍后在GitLab用户界面中更改此值。
    5提供跑步执行者。对于大多数用例,请输入 docker。
    6如果您docker以执行者身份输入,则系统会要求您提供默认镜像,以用于未在中定义一个的项目.gitlab-ci.yml。

防止每次构建都拉取镜像

  1. 拉取出docker容器中gitlab-runner的配置

         # 复制配置到当前目录
          docker cp 容器ID:/etc/gitlab-runner/config.toml ./ 
  2. 添加配置配置pull_policy = "if-not-present"

gitLab进行CI配置记录

  1. 保存后放入容器重启
         docker cp ./config.toml 容器ID:/etc/gitlab-runner/config.toml
         docker restart 容器ID
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!