• 一份最基础的gitlab-ci文件,其中就maven的build和test


    说明的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
    

    详细说明

    1. stages: 定义了流水线中的两个阶段:buildtest

      • build: 该阶段主要用于构建项目。
      • test: 该阶段主要用于运行测试。
    2. variables: 设置了Maven的环境变量

      • MAVEN_OPTS: 定义了Maven的选项,将本地仓库设置到CI项目目录下的.m2/repository,以避免每次构建都下载依赖。
    3. before_script: 定义了在所有作业之前运行的脚本。

      • echo $MAVEN_OPTS: 输出Maven选项,确保变量已正确设置。
      • mvn --version: 检查Maven版本,确保Maven已正确安装。
    4. build: 定义了构建作业。

      • stage: 指定该作业属于 build 阶段。
      • script: 运行的脚本命令。
        • mvn clean install -B -DskipTests: 使用Maven进行构建,清理项目并安装依赖,但跳过测试。-B 是无交互模式。
      • artifacts: 指定要保存的工件。
        • paths: 保存构建生成的Jar文件。
    5. test: 定义了测试作业。

      • stage: 指定该作业属于 test 阶段。
      • script: 运行的脚本命令。
        • mvn test: 使用Maven运行测试。
      • artifacts: 总是保存测试报告工件。
        • when: always: 总是保存,即使测试失败。
        • paths: 保存目标目录中的Surefire测试报告。
  • 相关阅读:
    Python快速刷题网站——牛客网 数据分析篇(八)
    大数据运维实战第二十七课 Hadoop 平台常见故障汇总以及操作系统性能调优
    并查集——以nuist OJ P1648炼丹术为例
    国家开放大学 模拟试题 训练
    行走在路上
    无需公网IP,实现外网远程访问管家婆ERP进销存系统的方法
    MSDC 4.3 接口规范(26)
    分治法思想和题目
    react15升级17问题记录
    Python 操作 Excel,如何又快又好?
  • 原文地址:https://blog.csdn.net/xhangs/article/details/139458473