1

我只是想知道为 monorepo 设置配置 codecov 的最佳方法是什么。例如,假设我的 monorepo 下有包 A 和 B。我目前使用 codecov 的方式是使用 github action codecov/codecov-action@v1,在我的 GitHub 工作流 YAML 文件中使用 multiple uses 语句,如下所示:-

- uses: codecov/codecov-action@v1
  with:
    files: ./packages/A/coverage/lcov.info
    flags: flag_a
    name: A
- uses: codecov/codecov-action@v1
  with:
    files: ./packages/B/coverage/lcov.info
    flags: flag_b
    name: B

我知道可以使用逗号分隔的值来上传多个文件,但我必须为每个包设置一个单独的标志,这样做似乎行不通。谢谢你。

4

1 回答 1

0

如果有人想知道我的解决方案,这就是我想出的。我最终用我自己的 bash 脚本替换了 github 操作。

final code 
#!/usr/bin/env bash

codecov_file="${GITHUB_WORKSPACE}/scripts/codecov.sh"

curl -s https://codecov.io/bash > $codecov_file
chmod +x $codecov_file

cd "${GITHUB_WORKSPACE}/packages";

for dir in */
  do
    package="${dir/\//}"
    if [ -d "$package/coverage" ]
      then
        file="$PWD/$package/coverage/lcov.info"
        flag="${package/-/_}"
        $codecov_file -f $file -F $flag -v -t $CODECOV_TOKEN
      fi
  done

这就是上面的 bash 脚本所做的

  1. 从 codecov 下载 bash 上传脚本
  2. 移动到包所在的包目录,并遍历所有第一级目录
  3. 通过删除多余的斜杠来更改包名称
  4. 如果目录只包含覆盖目录,则进入它,因为只有那些包已经过测试。
  5. 创建文件和标志变量(删除带下划线的连字符,因为 codecov 不支持标志名称中的连字符)
  6. 通过将文件和标志变量作为参数传递来执行下载的 codecov 脚本
于 2021-03-10T21:06:55.787 回答