首页 > 解决方案 > 如何使用gitlab ci测试一个java maven项目是否可以在多个jdks平台下构建和运行?

问题描述

在其他一些 ci 中,例如使用 Travis,它支持多个 JDK 测试(例如https://blog.travis-ci.com/support_for_multiple_jdks)。

但是,我不确定如何在 GitLab ci 下制作它。

假设我有一个 java 项目,我想确保这个项目可以在 jdk8 和 jdk11 下正确构建和运行,我该如何在 Gitlab CI 中做到这一点?

非常感谢!

标签: automated-testsgitlabgitlab-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 运行器并在自定义运行器上运行您的测试。

一切都取决于您拥有什么资源以及您想要实现什么。


推荐阅读