travis是GitHub上知名的ci/cd工具,我们自己编写的python库可以利用travis实现自动部署到pypi,免去了我们因为遗忘导致pypi上的开源库版本滞后的现象。
编辑.travis文件
这里假设读者已经注册了travis账号并绑定了自己的github账户,没有注册同学可以自行去注册一下。
以博主自己的开源库sf-sdk为例,首先要编写一个.travis文件:
1 | language: python |
- python:指定版本
- script: 运行单元测试脚本
- user: 填写你的pypi账号
- password: pypi的账号,安全起见,将密码加了密
pypi密码加密
如果上面的配置使用的是明文密码,这样就把pypi账号公开了,太不安全。这里推荐使用 travis-encrypt 加密密码。
1 | pip3 install travis-encrypt |
然后在 .travis.yml 所在目录执行:
1 | travis-encrypt --deploy block-cat sf-sdk .travis.yml |
这里的block-cat和sf-sdk要替换你的GitHub账号和仓库名
构建
当你提交代码之后,会在travis看到触发ci的构建进程:
推送新版本到pypi
我们前面写的.travis中有一个条件,只有当我们推送tag到github时,才会触发部署到pypi的动作,这样就能避免因为多次提交导致pypi拒绝同版本的提交问题。
给项目添加build图标
要想让我们的项目显得bigger高一点,给自己的项目价格图标吧:
将上图中的代码贴到README.md文件中就行了。
增加测试覆盖率
首先,我们使用pytest来测试我们的测试脚本,然后使用coverage来统计覆盖率,因此,我们需要在requirements.txt文件中增加如下代码:
1 | pytest |
同样的,我们使用github账号注册coveralls网站,添加我们的项目。
然后编辑.travis.yaml文件:
1 | after_success: |
再次提交我们的代码,就可以看到覆盖率了: