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配置说明
only 配置决定需要构建的分支,当该分支有变动时会执行流水线操作
比如一些
SSH_PRIVATE_KEY
或者TEST_SSH_PRIVATE_KEY
等属于变量、可在gitlab设置-CI/CD-变量中定义(注意部分变量设置受保护的话只能主分支使用)这里使用到
docker
的镜像image: wangzhiying/ubuntu_ci:v1
这个镜像是我自己基于ubuntu
原始镜像运行命令'which ssh-agent || ( apt-get update -y && apt-get install openssh-client rsync -y )'
后生成,主要目的为了加快构建速度,你也可以使用ubuntu
镜像部分目录或文件不需要同步的话需要在代码目录下新增
.gitlab-exclude
文件、把需要禁止同步的目录或文件写上ssh公钥免密登陆服务器的话参考网址
https://blog.csdn.net/Hannnnnnnnnnnnn/article/details/110196685
(本机对本地也可以,不一定需要本机对远端服务器)配置完成后需要进行
gitlab-Runner
安装
利用docker进行gitlab-runner 安装
下载镜像
docker pull gitlab/gitlab-runner:latest
创建数据卷
docker volume create gitlab-runner-config
根据安装类型运行register命令
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
根据提示输入
1输入您的GitLab实例URL(也称为gitlab-ci coordinator URL)。 2输入您获得的Token以注册跑步者。 3输入跑步者的描述。您可以稍后在GitLab用户界面中更改此值。 4输入与Runner关联的标签,并用逗号分隔。您可以稍后在GitLab用户界面中更改此值。 5提供跑步执行者。对于大多数用例,请输入 docker。 6如果您docker以执行者身份输入,则系统会要求您提供默认镜像,以用于未在中定义一个的项目.gitlab-ci.yml。
防止每次构建都拉取镜像
拉取出docker容器中gitlab-runner的配置
# 复制配置到当前目录 docker cp 容器ID:/etc/gitlab-runner/config.toml ./
添加配置配置
pull_policy = "if-not-present"
- 保存后放入容器重启
docker cp ./config.toml 容器ID:/etc/gitlab-runner/config.toml docker restart 容器ID
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: