如何在 Maven GitLab CI/CD 管道中将 JaCoCo 报告 HTML 转换为 PDF

Posted

技术标签:

【中文标题】如何在 Maven GitLab CI/CD 管道中将 JaCoCo 报告 HTML 转换为 PDF【英文标题】:How do I convert JaCoCo report HTML to PDF in Maven GitLab CI/CD pipeline 【发布时间】:2021-12-23 16:39:33 【问题描述】:

我正在尝试通过在 CI/CD 管道中转换为 PDF 格式来存储 JaCoCo 报告中的 index.html 文件。在 GitLab 中从 HTML 转换为 PDF 的正确命令是什么?

【问题讨论】:

【参考方案1】:

Jacoco 本身不支持 pdf。 它确实会生成一个 html 报告。 因此,您可以使用 cli 工具将 html 转换为 pdf。

例如https://wkhtmltopdf.org/ 或 pandoc。

你需要在你的工作中安装它/使用一个已经包含它的 docker 镜像。

例子:

Test:
  image: maven:3.8.3-jdk-11-slim
  stage: test
  script:
    - mvn $MAVEN_CLI_OPTS clean org.jacoco:jacoco-maven-plugin:prepare-agent test 
    - mvn $MAVEN_CLI_OPTS jacoco:report 
  artifacts:
    when: always
    paths:
      - target/site/jacoco/jacoco.xml

jacoco2pdf:
  image: riftbit/goracle:alpine-19.3
  stage: deploy
  script:
    - cd  target/site/jacoco
    - wkhtmltopdf index.html jacoco.pdf
  artifacts:
    when: always
    paths:
      - target/site/jacoco/jacoco.pdf

请注意,使用的 docker 映像只是一个示例。除非您先验证其内容,否则不应在生产中使用它。

【讨论】:

以上是关于如何在 Maven GitLab CI/CD 管道中将 JaCoCo 报告 HTML 转换为 PDF的主要内容,如果未能解决你的问题,请参考以下文章

你能在 GitLab CI/CD 中添加外部 Maven 库吗

带有 maven 的 gitlab CI/CD 不会在 application.properties 中设置环境变量

GitLab CI/CD 运行程序无法执行

剪切新版本时如何触发 GitLab CI/CD 管道?

为合并请求触发的管道运行应用 GitLab CI/CD 管道更改

Gitlab CI/CD 运行器:找不到 mvn 命令