内容简介: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单元测试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Black Box Society
Frank Pasquale / Harvard University Press / 2015-1-5 / USD 35.00
Every day, corporations are connecting the dots about our personal behavior—silently scrutinizing clues left behind by our work habits and Internet use. The data compiled and portraits created are inc......一起来看看 《The Black Box Society》 这本书的介绍吧!