GitHub 與 持續集成 Travis-CI 的集成很是簡單。python
使用python
密鑰指定python版本。當咱們更新Python構建映像時,別名3.6
會指向不一樣的確切版本或補丁級別。git
language: python
python:
- '3.5'
- '3.6'
- '3.7'
install:
- pip install -r requirements.txt
script:
- pytest slmethod
複製代碼
您須要添加 dist: xenial
到您的 .travis.yml
文件以使用 Python 3.7 及更高版本。github
例如:api
dist: xenial # required for Python >= 3.7
language: python
python:
- "3.7"
複製代碼
docs.travis-ci.com/user/deploy…ruby
成功構建後,Travis CI能夠自動將Python包發佈到PyPI。bash
對於最小配置,請將如下內容添加到.travis.yml
:ide
deploy:
provider: pypi
user: "Your username"
password: "Your password"
複製代碼
可是,這會將您的PyPI密碼暴露給全世界。咱們建議您加密密碼並經過運行如下命令將其添加到.travis.yml:svg
安裝 travis-encrypt測試
pip install travis-encrypt
複製代碼
而後在 .travis.yml 所在目錄執行:
travis encrypt your-password-here --add deploy.password
複製代碼
或者
travis-encrypt --deploy iosdevlog slmethod .travis.yml
複製代碼
這個要按提示輸入 pypi 密碼。
請注意,若是您的 PyPI 密碼包含特殊字符,則須要在加密密碼以前將其轉義。
最有可能的是,當您的軟件包的新版本被刪除時,您只想部署到PyPI。爲此,您能夠告訴Travis CI僅部署在標記的提交上,以下所示:
deploy:
provider: pypi
user: ...
password: ...
on:
tags: true
複製代碼
若是在本地標記提交,請記住運行 git push --tags
以確保將標記上載到 GitHub。
您可使用on選項顯式指定要釋放的分支:
deploy:
provider: pypi
user: ...
password: ...
on:
branch: master
複製代碼
或者,您也能夠將Travis CI配置爲從全部分支發佈:
deploy:
provider: pypi
user: ...
password: ...
on:
all_branches: true
複製代碼
默認狀況下,Travis CI僅從主分支發佈。
從Pull Requests觸發的構建永遠不會觸發發佈。
只有在知足某些條件時才能部署。請參閱條件發佈on:
。
language: python
deploy:
provider: pypi
user: ...
password: ...
on:
python: 3.7
tags: true
branch: master
複製代碼
只在 Python 3.7
發佈。
最後的示例。
dist: xenial # required for Python >= 3.7
language: python
python:
- '3.5'
- '3.6'
- '3.7'
install:
- pip install -r requirements.txt
script:
- pytest slmethod
deploy:
provider: pypi
user: iosdevlog
on:
python: 3.7
tags: true
branch: master
password:
secure: xxxx
複製代碼
能夠發現 slmethod 升級到了 0.1.3 版本,說明已經部署成功了。
測試一下,先安裝 slmethod
。
pip3 install slmethod
複製代碼
顯示版本,能夠發到已是 0.1.3
。
$ python3
Python 3.7.3 (default, Mar 27 2019, 09:23:15)
[Clang 10.0.1 (clang-1001.0.46.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import slmethod
>>> slmethod.show_versions()
System:
python: 3.7.3 (default, Mar 27 2019, 09:23:15) [Clang 10.0.1 (clang-1001.0.46.3)]
executable: /usr/local/opt/python/bin/python3.7
machine: Darwin-18.6.0-x86_64-i386-64bit
Python deps:
pip: 19.0.3
setuptools: 40.8.0
numpy: 1.16.2
scipy: 1.3.0
pandas: 0.24.2
matplotlib: 3.1.0
sklearn: 0.21.2
slmethod: 0.1.3
複製代碼
打開 GitHub: github.com/iOSDevLog/s… 查看一下,果真顯示項目徽章。
若是你喜歡這篇文章,歡迎去 GitHub 給我一個 star
。