CICD使用说明

2021-07-09 by uino 47 研发

关于Runner配置

按照软件质量要求所有产品线仓库都要配置runner,如果仓库没有配置runner的请到以下地址注册Runner

关于.gitlab-ci.yml

前端仓库

请确保.gitlab-ci.yml有如下几个stage

  • install_deps 安装依赖,主要执行npm/yarn install
  • lint 代码风格检测,JavaScript代码推荐用eslint,如果是TypeScript推荐使用tslint
  • unit 单元测试,并且需要在这一步把单元测试结果以text-summary的格式打印出来
  • build 打包代码

Maven仓库

请确保.gitlab-ci.yml有如下几个stage

  • build 打包代码
  • unit 单元测试,这一步需要配置jacoco的代码结果输出到target/coverage目录
  • coverage 提取单元测试覆盖率结果,这一步为固定内容如下
coverage:
  stage: coverage
  script:
    - coverageForJaCoCo

范本

Maven POM配置JaCoCo范本

<plugin>
  <groupId>org.jacoco</groupId>
  <artifactId>jacoco-maven-plugin</artifactId>
  <version>0.8.1</version>
  <executions>
    <execution>
      <id>prepare-agent</id>
      <goals>
        <goal>prepare-agent</goal>
      </goals>
    </execution>
    <execution>
      <id>report</id>
      <phase>prepare-package</phase>
      <goals>
        <goal>report</goal>
      </goals>
    </execution>
    <execution>
      <id>post-unit-test</id>
      <phase>test</phase>
      <goals>
        <goal>report</goal>
      </goals>
      <configuration>
        <dataFile>target/jacoco.exec</dataFile>
        <outputDirectory>target/coverage</outputDirectory>
      </configuration>
    </execution>
  </executions>
</plugin>

覆盖率提取正则

  • text-summary: ^Statements\s*:\s*([^%]+)
  • JaCoCo: Total\s(\d+.\d+%)

请把以上正则填入仓库 > settings > CI/CD > General pipelines > Test coverage parsing input框内,并保存

test-coverage-parsing.png