1 回答
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选项)。
添加回答
举报