快速在GitHub搭建一个规范的开源项目(四)

前三篇博客
快速在GitHub搭建一个规范的开源项目(一)
快速在GitHub搭建一个规范的开源项目(二)
快速在GitHub搭建一个规范的开源项目(三)
我们已经介绍了如何初始一个团队并且制定了规范的开发流程和代码提交流程,Issue规范以及接入CI。
接下来我们介绍如何统计项目的单侧覆盖率。
这里我们用到的工具是codecov。官网链接
在这里插入图片描述
其他集成非常简单,只要登录官网,然后关联GitHub账号。(这里有一点要注意,记得先清理一下cookie中的缓存。否则很难登录上去,这个bug官方后续应该会处理掉。),在我们项目的.travis.yml文件中增加下面👇这一行脚本即可完成集成。
bash <(curl -s https://codecov.io/bash)
完整的.travis.yml文件如下

language: java
sudo: false # faster builds

jdk:
  - openjdk8

cache:
  directories:
    - $HOME/.m2
## 不需要安装任何其他脚本
install: true

script:
  - travis_wait 30 ./mvnw --batch-mode clean install -DskipTests=false  -Dmaven.javadoc.skip=true

after_success:
  - bash <(curl -s https://codecov.io/bash)

after_failure:
  - echo "build failed!"

后续我们提交PR后,项目自动在Travis-CI跑单测,单测跑完后会将单测报告发送到codecov。
codecov配置教程
这是我们项目的配置教程,大家可以参考一下。
在项目根目录创建.codecov.yml文件,文件内容如下:

coverage:
  status:
    #仅仅统计pull request
    patch:
      default:
        ## 必须满足的最低覆盖率才能被视为success
        target: 70%
        ## 最多允许覆盖率下降0.1%,才能视为success
        threshold: 0.1%
  ## 单测覆盖率在此范围内会变绿
  range:
    50..100
## 忽略的文件
ignore:
  - "src/main/java/com.xy.datasource.spring.boot.starter.annotation/.*"

其他定制化的需求可以参考官网教程,集成后的效果如下
在这里插入图片描述
图标在此目录下,复制到README.md文件即可。
在这里插入图片描述
集成后有PR提交时,在GitHub的PR界面都会出现这些检测
在这里插入图片描述
最后我们来讲一下如何将单测分析报告提交到GitHub评论区,打开codecov,然后在选择你的头像,点击Account,然后选中右边的Yaml。添加下面这一项配置即可,这样配置是对所有repository有效,如果你想针对某个工程单独配置,可以在.codecov.yml文件中修改配置即可。
在这里插入图片描述
配置我单独贴出来,方便大家复制

comment:
  layout: "reach, diff, flags, files"
  behavior: default
  require_changes: false  # if true: only post the comment if coverage changes
  require_base: no        # [yes :: must have a base report to post]
  require_head: yes       # [yes :: must have a head report to post]
  branches:               # branch names that can post comment
    - "!*-dev"

接下来打开GitHub提交PR,我们就可以在评论区看到下面这个效果了
在这里插入图片描述
下一篇我们讲一下代码的发布流程。传送门👇👇👇
快速在GitHub搭建一个规范的开源项目(五)

AI实战-泰坦尼克号生还可能性数据集分析预测实例(含19个源代码+59.76 KB完整的数据集) 代码手工整理,无语法错误,可运行。 包括:19个代码,共121.84 KB;数据大小:1个文件共59.76 KB。 使用到的模块: pandas numpy seaborn matplotlib.pyplot warnings sklearn.model_selection.train_test_split sklearn.ensemble.RandomForestClassifier sklearn.metrics.accuracy_score sklearn.metrics.confusion_matrix os scipy.stats sklearn.compose.ColumnTransformer sklearn.impute.SimpleImputer sklearn.preprocessing.OneHotEncoder sklearn.impute.KNNImputer sklearn.preprocessing.StandardScaler sklearn.ensemble.RandomForestRegressor sklearn.ensemble.GradientBoostingRegressor sklearn.metrics.classification_report sklearn.metrics.roc_auc_score sklearn.model_selection.cross_val_score sklearn.pipeline.Pipeline sklearn.model_selection.RandomizedSearchCV sklearn.ensemble.GradientBoostingClassifier sklearn.linear_model.LogisticRegression sklearn.naive_bayes.GaussianNB sklearn.metrics.roc_curve xgboost.XGBClassifier sklearn.ensemble.AdaBoostClassifier sklearn.tree.DecisionTreeClassifier sklearn.preprocessing.LabelEncoder imblearn.over_sampling.SMOTE sklearn.svm.SVC sklearn.model_selection.GridSearchCV math sklearn.neighbors.KNeighborsClassifier sklearn.metrics.precision_score sklearn.metrics.recall_score sklearn.metrics.f1_score sklearn.metrics.ConfusionMatrixDisplay torch dataclasses.dataclass typing.List typing.Tuple typing.FrozenSet typing.Set typing.Dict fcapy.lattice.ConceptLattice fcapy.lattice.formal_concept.FormalConcept fcapy.poset.POSet fcapy.visualizer.line_layouts.calc_levels sparselinear.SparseLinear sklearn.neural_network.MLPClassifier fcapy.context.FormalContext fcapy.visualizer.LineVizNx networkx sklearn.preprocessing.MinMaxScaler sklearn.ensemble.BaggingClassifier torch.nn torch.optim sklearn.datasets.load_iris
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值