《統計學習方法》使用 Travis-CI 持續集成

GitHub 與 持續集成  Travis-CI 的集成很是簡單。python

travis.build.png

構建 Python 項目

Building a Python Projectios

指定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
複製代碼

Python 3.7及更高版本

您須要添加 dist: xenial 到您的 .travis.yml 文件以使用 Python 3.7 及更高版本。github

例如:api

dist: xenial   # required for Python >= 3.7
language: python
python:
  - "3.7"
複製代碼

travis.png

PyPI部署

docs.travis-ci.com/user/deploy…ruby

成功構建後,Travis CI能夠自動將Python包發佈到PyPIbash

對於最小配置,請將如下內容添加到.travis.ymlide

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 密碼包含特殊字符,則須要在加密密碼以前將其轉義。

部署 tag

最有可能的是,當您的軟件包的新版本被刪除時,您只想部署到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
複製代碼

pypi.travis.png

能夠發現 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.svg.png

打開 GitHub: github.com/iOSDevLog/s… 查看一下,果真顯示項目徽章。

若是你喜歡這篇文章,歡迎去 GitHub 給我一個 star

相關文章
相關標籤/搜索