作者:手机用户2502858383_827 | 来源:互联网 | 2022-11-22 15:47
我有一个驻留在Gitlab中的Gradle Java 11项目。我想介绍gitlab-ci.yml
一下强制Gitlab构建项目并在每次向远程分支推送时运行测试。
看起来像什么?
我很确定已经提出了类似的问题,但是找不到,因此,感谢您的帮助。
1> Justin Alban..:
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差异。
有关更多信息,请参见以下内容:
如何为gitlab CIRunner启用Maven工件缓存?
GitLab CI / CD中的缓存依赖项
GitLab CI / CD示例
Gitlab CI Gradle依赖项缓存
Gradle项目的.gitlab-ci.yml示例
gitlab 8.2.1,如何在.gitlab-ci.yml中使用缓存
支持的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选项)。