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

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

作者头像
iOSDevLog
发布于 2019-06-11 09:00:29
发布于 2019-06-11 09:00:29
95600
代码可运行
举报
文章被收录于专栏:iOSDevLogiOSDevLog
运行总次数:0
代码可运行

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

travis.build.png

构建 Python 项目

Building a Python Project

指定Python版本

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
deploy:
  provider: pypi
  user: "Your username"
  password: "Your password"

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

安装 travis-encrypt

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install travis-encrypt

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
travis encrypt your-password-here --add deploy.password

或者

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
travis-encrypt --deploy iosdevlog slmethod .travis.yml

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

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

部署 tag

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    tags: true

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

部署特定分支

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    branch: master

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    all_branches: true

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

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

有条件的发布

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
language: python
deploy:
  provider: pypi
  user: ...
  password: ...
  on:
    python: 3.7
    tags: true
    branch: master

只在 Python 3.7 发布。

最后的示例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
pip3 install slmethod

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ 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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用github+travis将Python包部署到Pypi
我在 github 托管 Python 代码,然后将包发布到 Pypi,通常的操作步骤是,更新完代码将提交到 github ,然后手动将包更新到 pypi,这样比较繁琐,就想到了使用github+travis-ci 构建一个自动部署环境。
goodspeed
2020/12/22
1K0
使用github+travis将Python包部署到Pypi
持续集成服务 Travis CI 教程
编写代码只是软件开发的一小部分,更多的时间往往花在构建(build)和测试(test)。 为了提高软件开发的效率,构建和测试的自动化工具层出不穷。Travis CI 就是这类工具之中,市场份额最大的
崔庆才
2018/06/25
1.2K0
持续集成服务 Travis CI 教程
编写代码只是软件开发的一小部分,更多的时间往往花在构建(build)和测试(test)。 为了提高软件开发的效率,构建和测试的自动化工具层出不穷。Travis CI 就是这类工具之中,市场份额最大的一
ruanyf
2018/04/12
1.4K0
持续集成服务 Travis CI 教程
Travis Ci 让你的项目轻松加入持续集成测试
不知道大家有没有这种体验,代码写完之后,要花大量的时间进行构建和测试,就拿 Python 来说吧,写完代码后,编写测试用例,准备测试环境,执行测试,完成构建,部署到服务器。
somenzz
2022/04/07
3010
Travis Ci 让你的项目轻松加入持续集成测试
统计学习方法 Python 库
源码地址:https://github.com/iOSDevLog/slmethod
iOSDevLog
2019/06/01
1K0
Travis CI简介
Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。
acc8226
2022/05/17
1.7K0
Travis CI简介
Travis CI 使用详解
本文列举了使用 Travis CI 可能遇到的问题及其解决方法。 官方网站:https://travis-ci.org 官方文档:https://docs.travis-ci.com/ 注册登录 在 https://travis-ci.org 直接通过 GitHub 登录。 项目同步 目前,travis 仅支持构建 GitHub 项目。 登录之后点击右上角用户名,再点击右上的 Sync account 来同步 GitHub 项目。 如果你名下的 GitHub 组织没有显示,请点击左下 Review and
康怀帅
2018/02/28
2.4K0
travis-ci + github + hexo 持续集成
Travis CI 的网站有两个, travis-ci.org 专门针对开源项目,GitHub 上所有的公开仓库都能够免费使用; travis-ci.com 针对私有及商业项目,新用户前 100 次构建是免费的,后面就要收费了。
leader755
2022/03/09
1.1K0
travis-ci + github + hexo 持续集成
基于Travis CI的Android项目自动构建流程
Step2:命令行登录Travis(第一次登录才要),并输入GitHub的用户名和密码
用户1205080
2018/12/28
1.6K0
使用Github,Travis CI自动布署Hexo博客到Coding,OSChina服务器
通常我们都是在本地用hexo deploy发布博客文章到远程的Pages服务器,可别忘记了我们是还需要提交代码的,所以是不是觉得有点麻烦还得分开两步进行操作。这时突然想起是否可用Travis CI工具来完成这个布署的操作呢?答案是肯定的,整体的流程大致如下:
凡梦星尘
2024/11/20
710
使用Github,Travis CI自动布署Hexo博客到Coding,OSChina服务器
建立Helm chart的持续集成
https://blog.mayadata.io/openebs/setup-continuous-integration-for-helm-chart
CNCF
2020/02/26
1.2K0
使用Travis CI自动部署Hexo
之前换过很多的静态博客系统,但是每个系统都需要本地做一定的部署,这点很麻烦。 Gor 倒是有可执行文件,但是本地部署的时候还是需要合并提交代码,还是略不爽。 今天在查 CI 系统的时候发现了 Travis CI ,于是,一切都很开心了。
零式的天空
2022/03/22
4550
手把手教你撸自动部署 --- Travis CI
想要使用Travis,首先你得有一个GitHub账号,然后登录Travis官网。选择GitHub账号登录,如图:
饼干_
2022/09/19
4830
使用 Travis CI 自动更新 GitHub Pages
Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。我们在软件开发过程中,有构建、测试、部署这些必不可少的步骤,而这些会花掉我们很多的时间。为了提高软件开发的效率,现在涌现了很多自动化工具。Travis CI 是目前市场份额最大的一个,而且有很详细的文档以及可以和 Github 很好的对接。
零式的天空
2022/03/27
9980
Travis-CI 持续集成部署
一般自己闲来会写些并无卵用的小玩意儿,纯静态的页面话,便会部署在 GitHub Pages 上。 而动态网站则部署在自己的服务器上,又或是如下有一些可以部署测试的动态服务。(当然那样的话,自定义域名之类的服务就要收费了。)
云游君
2021/05/21
6620
Go项目接入travis
本文不讲述 Go 的单元测试如何编写,这里直接以filenamify(一个合法化文件路径的库)为例子。已为filenamify.go编写测试文件filenamify_test.go。只需要在tracis中执行go test -v即可。
ACK
2020/03/24
6160
Go项目接入travis
Travis 持续集成 GoLang 工程, 配置 踩坑记录
最近看了一些GoLang方面的文章,平时用来写一些脚本还是比较不错的。尤其是其可编译为二进制单一文件跨平台运行的特性,实在是让人喜爱。就我个人来说,解决了给没有计算机编程基础的人的环境下跑脚本要安装一堆环境/依赖的痛点。travis作为优秀的持续集成服务,其诸多的特性也值得尝试一下,与GitHub进行完美的结合,支持打包部署到项目release,当然travis的特性并不只有这些。
许杨淼淼
2019/12/30
5570
使用 Travis CI 自动部署 Hexo
Travis CI 是一个持续集成的平台,我们可以使用其自动构建部署的功能帮我们简化 Hexo 博客的部署流程。
李振
2021/11/26
6830
使用 Travis CI 自动部署 Hexo
利用 Travis 自动部署博客
集成 主要是用来将多个用户的开发模块构建成一个可运行版本;而 持续集成 则是在集成之上,尽量将每一次提交都进行一次构建,这个个过程就是 持续集成 。
zucchiniy
2019/10/31
9990
使用 Travis CI 持续集成工具自动化部署 Hexo
众所周知,Hexo 是一款免费开源的静态博客生成工具,使用它可以快速生成一个博客。但随着文章之类的东西增加,生成的速度也会逐渐变慢,如果你配置不够,那搞不好就要几小时才能生成,并且还有一个好处:
FloatSheep
2022/04/25
3390
使用 Travis CI 持续集成工具自动化部署 Hexo
相关推荐
使用github+travis将Python包部署到Pypi
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档