说明的gitlab-ci.yml
文件,包含注释解释每个部分的功能:
# 定义流水线的各个阶段,包含两个阶段:build 和 test
stages:
- build
- test
# 设置Maven的环境变量,指定本地仓库位置
variables:
MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository"
# 在所有作业之前运行的脚本,主要用于设置和检查环境
before_script:
# 输出Maven选项,确保变量已正确设置
- 'echo $MAVEN_OPTS'
# 检查Maven版本,确保Maven已正确安装
- 'mvn --version'
# 第一个作业:构建作业
build:
# 这个作业所属的阶段是 build
stage: build
# 该作业执行的脚本
script:
# 使用 Maven 进行构建,清理项目并安装依赖,但跳过测试
- 'mvn clean install -B -DskipTests'
# 指定要保存的工件,这些工件将在后续的作业中使用
artifacts:
# 保存目标目录中的所有 Jar 文件
paths:
- target/*.jar
# 第二个作业:测试作业
test:
# 这个作业所属的阶段是 test
stage: test
# 该作业执行的脚本
script:
# 使用 Maven 运行测试
- 'mvn test'
# 总是保存测试报告工件,即使测试失败
artifacts:
when: always
# 保存目标目录中的 Surefire 测试报告
paths:
- target/surefire-reports
详细说明
-
stages: 定义了流水线中的两个阶段:
build
和test
。-
build
: 该阶段主要用于构建项目。 -
test
: 该阶段主要用于运行测试。
-
-
variables: 设置了Maven的环境变量。
-
MAVEN_OPTS
: 定义了Maven的选项,将本地仓库设置到CI项目目录下的.m2/repository
,以避免每次构建都下载依赖。
-
-
before_script: 定义了在所有作业之前运行的脚本。
-
echo $MAVEN_OPTS
: 输出Maven选项,确保变量已正确设置。 -
mvn --version
: 检查Maven版本,确保Maven已正确安装。
-
-
build: 定义了构建作业。
-
stage
: 指定该作业属于build
阶段。 -
script
: 运行的脚本命令。-
mvn clean install -B -DskipTests
: 使用Maven进行构建,清理项目并安装依赖,但跳过测试。-B
是无交互模式。
-
-
artifacts
: 指定要保存的工件。-
paths
: 保存构建生成的Jar文件。
-
-
-
test: 定义了测试作业。
-
stage
: 指定该作业属于test
阶段。 -
script
: 运行的脚本命令。-
mvn test
: 使用Maven运行测试。
-
-
artifacts
: 总是保存测试报告工件。-
when: always
: 总是保存,即使测试失败。 -
paths
: 保存目标目录中的Surefire测试报告。
-
-