前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《统计学习方法》使用 Travis-CI 持续集成

《统计学习方法》使用 Travis-CI 持续集成

作者头像
iOSDevLog
发布2019-06-11 17:00:29
9030
发布2019-06-11 17:00:29
举报
文章被收录于专栏:iOSDevLogiOSDevLog

GitHub 与 持续集成 Travis-CI 的集成非常简单。

travis.build.png

构建 Python 项目

Building a Python Project

指定Python版本

使用python密钥指定python版本。当我们更新Python构建映像时,别名3.6会指向不同的确切版本或补丁级别。

代码语言:javascript
复制
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 及更高版本。

例如:

代码语言:javascript
复制
dist: xenial   # required for Python >= 3.7
language: python
python:
  - "3.7"

travis.png

PyPI部署

https://docs.travis-ci.com/user/deployment/pypi/

成功构建后,Travis CI可以自动将Python包发布到PyPI

对于最小配置,请将以下内容添加到.travis.yml

代码语言:javascript
复制
deploy:
  provider: pypi
  user: "Your username"
  password: "Your password"

但是,这会将您的PyPI密码暴露给全世界。我们建议您加密密码并通过运行以下命令将其添加到.travis.yml:

安装 travis-encrypt

代码语言:javascript
复制
pip install travis-encrypt

然后在 .travis.yml 所在目录执行:

代码语言:javascript
复制
travis encrypt your-password-here --add deploy.password

或者

代码语言:javascript
复制
travis-encrypt --deploy iosdevlog slmethod .travis.yml

这个要按提示输入 pypi 密码。

请注意,如果您的 PyPI 密码包含特殊字符,则需要在加密密码之前将其转义。

部署 tag

最有可能的是,当您的软件包的新版本被删除时,您只想部署到PyPI。为此,您可以告诉Travis CI仅部署在标记的提交上,如下所示:

代码语言:javascript
复制
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    tags: true

如果在本地标记提交,请记住运行 git push --tags 以确保将标记上载到 GitHub。

部署特定分支

您可以使用on选项显式指定要释放的分支:

代码语言:javascript
复制
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    branch: master

或者,您也可以将Travis CI配置为从所有分支发布:

代码语言:javascript
复制
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    all_branches: true

默认情况下,Travis CI仅从主分支发布。

从Pull Requests触发的构建永远不会触发发布。

有条件的发布

只有在满足某些条件时才能部署。请参阅条件发布on:

代码语言:javascript
复制
language: python
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    python: 3.7
    tags: true
    branch: master

只在 Python 3.7 发布。

最后的示例。

代码语言:javascript
复制
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

代码语言:javascript
复制
pip3 install slmethod

显示版本,可以发到已经是 0.1.3

代码语言:javascript
复制
$ 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: https://github.com/iOSDevLog/slmethod 查看一下,果然显示项目徽章。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.06.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 构建 Python 项目
    • 指定Python版本
      • Python 3.7及更高版本
      • PyPI部署
        • 部署 tag
          • 部署特定分支
          • 有条件的发布
          • 添加 GitHub 项目徽章
          相关产品与服务
          持续集成
          CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档