为了账号安全,请及时绑定邮箱和手机立即绑定

激活Gitlab来构建项目并运行测试的.gitlab-ci.yml文件应该是什么?

激活Gitlab来构建项目并运行测试的.gitlab-ci.yml文件应该是什么?

catspeake 2021-04-09 15:15:22
我有一个驻留在Gitlab中的Gradle Java 11项目。我想介绍gitlab-ci.yml一下强制Gitlab构建项目并在每次向远程分支推送时运行测试。看起来像什么?我很确定已经提出了类似的问题,但是找不到,因此,感谢您的帮助。
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

Gitlab提供了该文件的正式描述.gitlab-ci.yml,但是要开始使用它可能会有点冗长。对于基础项目,可以使用以下内容作为基础:


image: gradle:jdk11


before_script:

  - export GRADLE_USER_HOME=`pwd`/.gradle


cache:

  paths:

    - .gradle/wrapper

    - .gradle/caches


package:

  stage: build

  script:

    - ./gradlew assemble


test:

  stage: test

  script:

    - ./gradlew check

注意,在许多示例中,image标签都设置为maven:latest,但是为了让Gitlab使用JDK 11编译项目,image必须将标签设置为maven:3-jdk-11。该GRADLE_USER_HOME设置为.gradle当前目录的脚本被读取,以确保环境的摇篮在开始构建之前配置正确。


本cache节定义了Gitlab CI查找缓存的工件和依赖项的路径(对于Gradle构建而言,其为.gradle/wrapper和.gradle/cache)。构建可能需要很长时间才能执行,因为每个构建都需要在每次执行构建时下载所有依赖项。为了加快速度,可以包括缓存,从而消除了重复下载依赖项的需要。缓存的具体情况可能会因您的项目而异。有关更多信息,请参见官方cache文档。


在assemble和check步骤简单地运行gradle assemble和gradle check分别。尽管gradle test在许多情况下就足够了(相对而言gradle check,该check步骤包括,test同时还包括其他验证步骤。有关check和之间的差异的更多信息test,请参阅测试和检查之间的Gradle差异。

等效的Maven示例:


image: maven:3-jdk-11


variables:

  MAVEN_CLI_OPTS: "--batch-mode"

  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"


cache:

  paths:

    - .m2/repository/

    - target/


package:

  stage: build

  script:

    - mvn $MAVEN_CLI_OPTS package


test:

  stage: test

  script:

    - mvn $MAVEN_CLI_OPTS test

该--batch-mode标志使用默认值运行Maven,并且不会提示用户选择任何默认值。在-Dmaven.repo.local=.m2/repository将本地存储库来构建服务器(Gitlab)上的位置。发挥了Gitlab的缓存能力。构建可能需要很长时间才能执行,因为每个构建都需要在每次执行构建时下载所有依赖项。为了加快速度,可以包括缓存,从而消除了重复下载依赖项的需要。缓存的具体情况可能因您的项目而异。有关更多信息,请参见官方cache文档。


的package和test的步骤简单地运行mvn package和mvn test,分别为(与上述的Maven选项)。


查看完整回答
反对 回复 2021-04-14
  • 1 回答
  • 0 关注
  • 501 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信