内容简介:Gitlab 除了基本的版本管理功能之外,还提供了很有用的持续集成能力,简单的在项目根目录中编写一段Gitlab CI/CD 是 Gitlab 的一个组件,它利用 Gitlab Runner 来执行具体的构建任务。Gitlab Runner 和 Gitlab 主程序一样,提供了 Helm chart 用于进行安装,同样可以用
Gitlab 除了基本的版本管理功能之外,还提供了很有用的持续集成能力,简单的在项目根目录中编写一段 .gitlab-ci.yml
,就能够让 Gitlab 按照其中的指示完成持续集成的工作。
Gitlab CI/CD 是 Gitlab 的一个组件,它利用 Gitlab Runner 来执行具体的构建任务。
Gitlab Runner 和 Gitlab 主程序一样,提供了 Helm chart 用于进行安装,同样可以用 helm fetch
下载 Chart 进行定制和渲染:
helm fetch --untar gitlab/gitlab-runner
根据官方文档介绍,Runner 的安装有两个必要参数:
gitlabUrl runnerRegistrationToken
另外还有一个即将用到的重要参数: runners.image
这个参数可以用来指定 Runner 的基础镜像,以满足不同环节中对 Runner 的需求。
例如为了构建 Java 应用,我们创建一个 Maven 的 Runner。Gitlab 地址我们已经知道了,接下来获取一个 Token,用浏览器打开 /admin/runners
,可以查看:
我们使用这个 Token,创建一个基于 maven:alpine
的 Runner:
$ helm template gitlab-runner \ --namespace gitlab \ --name java \ --set gitlabUrl="https://gitlab.microservice.rocks" \ --set runnerRegistrationToken="xgX4QEt8gklFGSOFu0FURTzfvticEQmqaa3cnosMmoxc1nacYSIMBniRmBgACn19" \ --set rbac.create=true \ --set runners.image="maven:alpine" \ --set runners.tags="java\,maven" \ --set runners.privileged=true | kubectl appy -f secret/java-gitlab-runner created configmap/java-gitlab-runner created serviceaccount/java-gitlab-runner created deployment.extensions/java-gitlab-runner created role.rbac.authorization.k8s.io/java-gitlab-runner created rolebinding.rbac.authorization.k8s.io/java-gitlab-runner created
创建成功之后,打开页面 /admin/runners
,会看到其中列出了我们新建的 Runner:
点击 Runner ID,可以看到详细信息,也可以进行修改。
Runner 运行起来之后,我们可以尝试建立一个项目,使用 Runner 来针对每次提交,运行一次单元测试。
访问 projects/new
创建一个新项目,命名为 sample
:
创建完成之后,进入项目的主页面:
这里点击 clone
按钮,会看到弹出的项目 git 地址,我们使用这个地址对项目进行初始化。
$ git clone git@gitlab.microservice.rocks:root/sample.git 正克隆到 'sample'... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0) 接收对象中: 100% (3/3), 完成.
这里我们使用来自 Junit 5 Sample 中的 Maven 示例来尝试 CI。
$ cd sample $ wget https://github.com/junit-team/junit5-samples/archive/master.zip ... $ unzip master $ mv junit5-samples-master/junit5-jupiter-starter-maven/* . $ rm master.zip $ rm -Rf junit5-samples-master
接下来创建如下内容的文件,命名为 .gitlab-ci.yaml
stages: - scan - build job unit: stage: scan tags: - maven script: - mvn test
Git 添加并提交,返回浏览器,查看项目首页,会发现多出一行内容:
这表示项目的 CICD 正在运行。稍候片刻,浏览 root/sample/pipelines
,会看到执行的 Pipeline 列表,我们最近的提交,Pipeline 结果已经显示为成功,点击后能够看到每个 Job 的执行记录:
如果我们修改一下测试案例 src/test/java/com/example/project/CalculatorTests.java
,把其中的 34 行修改为 1011 或者其它的错误结果,就会看到测试失败的情况。
如果新建分支,并在分支中修复测试案例的话,会在 MR 中看到单元测试的结果,帮助管理员判断 Merge Request 的合并请求是否合理:
以上所述就是小编给大家介绍的《使用 Maven 运行单元测试》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- java – 在需要身份验证的控制器上运行单元测试
- 学习 Node.js,第 9 单元:单元测试
- Vue 应用单元测试的策略与实践 02 - 单元测试基础
- Vue 应用单元测试的策略与实践 04 - Vuex 单元测试
- Vue 应用单元测试的策略与实践 03 - Vue 组件单元测试
- Angular单元测试系列-Component、Directive、Pipe 以及Service单元测试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux命令行与shell脚本编程大全 第3版
[美]布鲁姆,布雷斯纳汉 / 门佳、武海峰 / 人民邮电出版社 / 2016-8-1 / CNY 109.00
这是一本关于Linux命令行与shell脚本编程的全方位教程,主要包括四大部分:Linux命令行,shell脚本编程基础,高级shell脚本编程,如何创建实用的shell脚本。本书针对Linux系统的最新特性进行了全面更新,不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。通过本书的学习,你将轻松写出自己的shell脚本。一起来看看 《Linux命令行与shell脚本编程大全 第3版》 这本书的介绍吧!