安卓 持续集成 docker_GitLab CI + Docker 持续集成操作手册

本文详细介绍了如何在GitLab中利用持续集成(CI)实现代码自动化构建与测试,重点讲解了如何配置.gitlab-ci.yml文件,使用Docker安装GitLab Runner,并演示了通过API触发CI流程。还涉及到了Maven配置、权限问题解决方案和多种运行方式的选择。

概述

在传统软件的开发中,代码的集成工作通常是在所有人都将工作完成后在项目即将结束进行时,而这往往会花费大量的时间和精力。而持续集成是一种将集成阶段放在软件开发阶段的做法,以便更加有规律地构建,测试和集成代码。

“持续集成并不能消除 Bug,而是让它们非常容易发现和改正。”

持续集成可以在开发人员提交了新代码后,立刻进行构建、单元测试。从而我们可以根据测试结果以确定新的代码或者环境配置与原来的以及其他开发人员的代码或者环境配置能否正确地集成在一起。

GitLab CI 就已经集成在 GitLab 中,我们只需要在项目中添加一个 .gitlab-ci.yml 文件,然后添加一个 Runner,即可进行持续集成。而且随着 GitLab 的升级,GitLab 也变得越来越强大。

CI 的准备工作

docs.gitlab.com/runner/inst… CI 操作需要安装 GitLab Runner, 以上链接包含了多种安装方式,本文介绍docker 安装方式

docker pull gitlab/gitlab-runner:latest

docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
复制代码

docker exec gitlab-runner -it bash 进入其中,安装 java 和maven

容器内安装 Java 和 Maven

wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zxvf jdk-8u201-linux-x64.tar.gz mv jdk1.8.0_201
tar -xvf apache-maven-3.6.3-bin.tar.gz
复制代码

配置环境变量

vim /etc/profile

export JAVA_HOME=/opt/jdk1.8.0_201
export MAVEN_HOME=/opt/apache-maven-3.6.3
export PATH=${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${PATH}
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
复制代码

重新加载系统配置文件:source /etc/profile

15c626fc1da27cb2aad86b153c25bb95.png

项目如何使用CI

.gtilab-ci.yml 文件存放与项目于仓库的根目录,用以来定义 GitLab CI/CD 中的 Pipeline。其实无非是一个配置文件,理解起来挺简单的,我们主要是需要了解 Pipeline 的概念以及如何配置一个 .gitlab-ci.yml

给项目创建.gitlab-ci.yml文件,内容如下

8855709c96102d5cdc33a9f432353a44.png
build:
script: "pwd && mvn install"
复制代码

如果运行提示permission denied,或者提示找不到mvn命令, 原因是自己maven安装在自己创建的目录下,安装路径有问题。主要是因为gitlab-runner 配置文件.gitlab-ci.yml中的script脚本的执行用户是gitlab-runner 该用户只能访问/home/gitlab-runner文件夹下的东西,如果在其他位置执行一些命令,可以通过修改docker里的 /etc/gitlab-runner/config.toml解决

vi /etc/gitlab-runner/config.toml

## 追加内容
[runners.docker]
tls_verify = false
image = "latest"
privileged = true
disable_cache = false
volumes = ["/cache"]

复制代码
220c67545bea321e2d8e2c37b3c88702.png

GitLab 配置运行 CI 的runner

a73dd351ced3f1120e959441178b16f3.png

从下图可以看到有4种方式,这里选择手动设置

4d19485b8dc3c36ce550c243bd24536c.png

因为选择了Docker方式安装,需要进入docker执行如下命名,设置图片中第2、3项的链接和token,

gitlab-ci-multi-runner register
复制代码

根据提示输入对应2 、3中的url和token

ffc32bbbf6804696dffa0b916b226cba.png

设置成功可以看到

b64f3d1d4f0f560291d006a9b99679f3.png

通过api触发 CI

87b53e538048dfdef32db3e54b1d0534.png
9ee1f8ed090c09afd74101a1e8229864.png

复制最后的crul 命令即可执行自动构建的操作。当有新代码提交时同样会触发CI操作。

效果

a530fcf4d659c95e62a72c5139149002.png
4da2cf14df2451e67ad3cb791fffac53.png

拓展阅读

maven 配置多个仓库

gitlab ci shell script permission denied

Triggering pipelines through the API

Install GitLab Runner

GitLab CI + Docker 实现持续集成

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值