在 bash 中向命令添加模板化参数

时间:2021-01-20 16:18:29

标签: shell gitlab-ci

我正在建立一个具有多个扩展的新项目。我的目标是跟踪所有扩展的代码覆盖率。扩展位于目录扩展的子目录中,并有多个源文件夹。我的项目中的扩展数量不是最终的。所以我肯定会添加一个或多个。考虑这样的结构:

  • 扩展
    • 分机 A
      • 源代码
      • 测试源
      • 网络
        • 源代码
        • 测试源
    • 分机 B
      • ...

所有扩展都遵循相同的结构。我正在使用coverage-jdk11 作业,如下所述: https://docs.gitlab.com/ee/user/project/merge_requests/test_coverage_visualization.html#java-and-kotlin-examples

现在代替

python /opt/cover2cover.py target/site/jacoco/jacoco.xml 
          src/main/java 
          > target/site/cobertura.xml

我需要添加多个 src 目录,这是受支持的。所以我目前的版本是这样的:

python /opt/cover2cover.py jacoco.xml
          extensions/extensionA/src
          extensions/extensionA/testsrc
          extensions/extensionA/web/src
          extensions/extensionA/web/testsrc
          > cobertura.xml

但是这个显然只支持extensionA。我的想法是遍历扩展目录的子目录并为每个子目录创建多个参数。但我不知道如何在 shell 中执行此操作。

1 个答案:

答案 0 :(得分:0)

最后我使用以下命令让它工作:

find extensions -type d -maxdepth 3 -regex "^extensions/.*/\(testsrc\|src\)$" | xargs -t python /opt/cover2cover.py hybris/log/junit/jacoco.xml > hybris/log/junit/cobertura.xml
相关问题