样本travis ci+pypi积分
travis-pypi-integration的Python项目详细描述
这是在GitHub托管的代码库中使用Travis CI的一个非常简短的指南 将python包自动部署到pypi。 如果你对持续集成还不熟悉,或者想了解更多关于travis ci的信息, 先读Travis CI Core Concepts for Beginners。
在本指南中,我们将创建一个travis ci管道以自动:
- 启动MongoDB服务。需要mongo>=4.0
- 运行pytest测试
- 将包分发给pypi
所有代码都可以在https://github.com/musyoka-morris/travis-pypi-integration
先决条件
若要继续,请确保您有Travis CI帐户。 您可以通过访问https://travis-ci.org/然后单击Sign in with Github按钮轻松创建一个。
一。安装travis cli
首先我们需要安装Travis CLI,它是用ruby编写并作为gem发布的。 我们将使用这个工具来加密pypi密码。
安装gem:
sudo gem install travis
错误:找不到ruby的头文件…
如果遇到错误找不到ruby的头文件, 然后还需要安装ruby头文件。
那张stack overflow answer 救了我。总之,您需要按如下方式安装ruby开发头:
对于Debian和其他使用Debian风格打包的发行版:
sudo apt-get install ruby-dev
对于ubuntu:
sudo apt-get install ruby-all-dev
2.创建.travis.yml文件
.travis.yml
language:python# We are using Python languageinstall:pip install -r requirements.txt# Install requirementsscript:pytest# Run pytest tests
MongoDB服务
添加启动MongoDB服务的说明。
如果您对MongoDB服务不感兴趣,此部分是可选的。 我只是把它留在这里作为其他感兴趣的服务的指南。
...services:-mongodbbefore_script:-sleep 15# Sleep for 15 seconds to ensure the service is started before we issue any commands
默认情况下,travis加载mongo v2.4。我们指示travis加载mongo v4.0
...dist:xenialaddons:apt:sources:-mongodb-4.0-xenial# As defined on Travis Source safelist
PYPI部署
向pypi添加部署说明
...deploy:provider:pypiuser:musyoka-morris# Replace this with your pypi username. Password will be provided laterdistributions:sdist bdist_wheelskip_existing:true
三。添加加密的PYPI密码
注意到目前为止我们还没有指定pypi密码。 添加用公钥加密的密码的最简单方法是使用travis cli:
travis encrypt Your-Password-Here –add deploy.password
注意:这假设您正在项目目录中运行该命令。否则,添加-r owner/project。
该命令会自动将加密密码添加到.travis.yml文件中。 .travis.yml文件应该如下所示:
...deploy:...user:musyoka-morrispassword:secure:YourEncryptedPasswordHere
四。按下git
Travis配置就绪。 只需将代码推到主分支,travis就会处理其余部分。
完整的.travis.yml文件可以在github上找到https://github.com/musyoka-morris/travis-pypi-integration