automated-tests - 如何使用gitlab ci测试一个java maven项目是否可以在多个jdks平台下构建和运行?
问题描述
在其他一些 ci 中,例如使用 Travis,它支持多个 JDK 测试(例如https://blog.travis-ci.com/support_for_multiple_jdks)。
但是,我不确定如何在 GitLab ci 下制作它。
假设我有一个 java 项目,我想确保这个项目可以在 jdk8 和 jdk11 下正确构建和运行,我该如何在 Gitlab CI 中做到这一点?
非常感谢!
解决方案
一种方法是定义具有所需依赖项的不同图像的管道作业。您可以使用来自dockerhub
. 快速搜索后,我选择了我的 yaml 示例codenvy/jdk8_maven3_tomcat8
(jdk8 + maven)和appinair/jdk11-maven
(jdk11 + maven),但我不确定它们是否适合你。
tests_jdk8:
image: codenvy/jdk8_maven3_tomcat8
script:
- <your mvn test/build script>
tests_jdk11:
image: appinair/jdk11-maven
script:
- <your mvn test/build script>
如果您可以对环境进行 docker 化,则可以改用自定义图像。或者您编写一些before_script
可以将您的项目要求安装到任何 os docker 映像的内容。将完美地反映现有的生产环境。
如果您已经有测试项目的实例,您可以随时将它们连接为 Gitlab shell/docker 运行器并在自定义运行器上运行您的测试。
一切都取决于您拥有什么资源以及您想要实现什么。
推荐阅读
- c# - 如何使继承类的构造函数在类的构造函数之后运行
- reactjs - react 没有通过 redux 数组映射
- mysql - (我如何)Azure 数据工厂到(本地)使用证书的 mysql 数据库连接
- jquery - 更改图片来源不适用于变量
- c# - Unity - CommandInvokationFailure:Gradle 构建失败
- mysql - Docker Compose 与 MySQL 发生错误
- python - 使用Pygame让子弹以一定速度跟随移动物体?
- ios - iOS 推送通知仅由开发设备接收
- ssl - 在 z/os 上实现 ssl
- netbeans-8 - 无法连接到 Netbeans 插件门户