没有项目描述

python-dev-docker-project的Python项目详细描述


使用travis ci 2-dev.repo与Docker持续集成的模式

完整故事:Patterns of Continuous Integration for Data Science Python Projects

Build StatusPyPI versionCoverage StatusDocumentation Status

Conceptual Schema

“docker repo”模式创建两个单独的git存储库:一个用于docker发布,另一个用于软件开发。这使得特定于Docker的代码与实际的软件隔离。开发人员可以像往常一样继续开发源代码软件,而生产Docker映像是单独开发的

此存储库是用于软件开发的git存储库的一个示例。有关Docker Release的Git Repository示例,请参见Patterns for Continuous Integration with Docker using Travis CI 2 - Prod. Repo

团队使用不同的分支进行开发,并在某个点上完成合并主分支的请求。对于每个分支,提交主分支:

  • 修改setup.py中的版本号,将在包存储库上创建一个新版本(例如PyPI),
  • 修改MkDocsmkdocs.yml并在doc/下标记文件一个新文档由Read The Docspublished on-line生成,以供参考,
  • travis ci使用py.testmeasuring code coverage of python code来构建、测试和打包软件。
  • 如果此类测试成功:
    • 代码覆盖率统计信息发布在coveralls.iocoveralls
    • travis ci通过将包上载到包存储库(例如PyPI)来发布软件,
    • travis ci在docker注册表中做了两个新的docker开发映像,例如e59cbe8 develop(主分支上最后提交的映像)和develop(项目的正式开发映像),例如Docker Hub

文档文件

FROM python:3.6COPY . /myproject
WORKDIR /myprojectRUN pip install -e .

CMD["myproject","run"]

mkdocs.yml

site_name: Patterns for Continuous Integration with Docker using Travis CI 2 - Dev. Repo
theme: readthedocs
#docs_dir: sources
repo_url: https://github.com/gtesei/Patterns_for_Continuous_Integration_Docker_Travis_CI_2_DEV
site_description: 'Patterns for Continuous Integration with Docker using Travis CI'

nav:
- Home: index.md
- The_Repo_Pattern: 
  - Git_repository_for_software_development: git_dev.md
  - Git repository_for_Docker_release: git_docker.md

阅读文档

Read The Docs

.travis.yml

sudo: required 
services:
- docker
env:
  global:
    - IMAGE_NAME=gtesei/hello_docker_2
    - REGISTRY_USER=gtesei
    - secure: H8o2BrmikY0e9Gzj1t/Ca1H+hblEv9GC6Qd9MQoN/zxXx0MtiZw3eyCuBO4rpYvX80oeS/e9QM1b4v8OUCsRqGd1nwz4QhRQIRyzh03+n+Sp84qnTqAZvDNbPl0WYDSJyRYFij7SpVP37encJX8ioPaE+YarNn1AGUAVthFOvWhEEeuDGV0lDOXw0j+LsXr1hf821dqvlFLBXPE0dVB6LZD2QEde4BaCQaM+FgBRrcz/bkLMBByviUxdCevJsHSOnhc4rZCbBZ5k5oByJsXVMX/S+SFwP5N4ljkF9rjtIA8fMOlGjk8Z8kXSk3BeLctXGSrZBZBsXG2e89AfBeXFrK91tYdLJROXWdd6MN+U9r+FSIblHqB51zE2zFUpXK9pijUeJLNC2eacdNMRTvxA+tudEIuGkIKkgA4aGw8knoroWXI8ByLtVJA2mXQvlMqiN+pVQt36rwx1Tz0mlw2QOsI713f/JhSoJQNX7flRJrcs2FroCCmDrnpXiE+FN+svjLKz7b07lzw8H78PGfj11YPV8LGDHMRqf0/fu55157QaDgoDKekBLuwXYGT+q5pOu91r+9ywIUo5V8WXel7VM1iUqu3Kjq8DLpwiTErENwEEoq8x5uATXAHsnoXEpBFSj6RsU1BdambMkoz7bbOgviVwTDTGB4jgX7iYdlEYdzA=
language: python
python:
    - "3.6"
cache: pip
before_install:
    - sudo apt-get update
install: 
    - pip install -r requirements-dev.txt
    - pip install pytest pytest-cov
    - pip install coveralls
script: py.test --doctest-modules --cov 
after_success:
    - coveralls
deploy:
  provider: pypi
  user: gtesei
  distributions: sdist bdist_wheel
  password:
    secure: As9TKWe41QcMXIZ0lKZ7uYblvMbOrWklUjbtZo16juLvDmQDd2dqseEv+eBuI6ur6mov8P0+8MuyOcnDcmeUT0FXTYnjw2BHQC8diH4YvNfupRv6dJDspy3UfI8koQzTJqRfoz30UoCWKS4uU9RYP3uRU6VDIabmECAtKdi3eROeeb88W9LlWMXeuQPiNZlyWFQnHrekRWfzvuZtsxkj5eRtkfUsXTnChbBru0yulv9xIJPcigvvBE/I2DF6c1KFQbtXQ2h4a1FYJ9/NbbHthtvWWSvotJK0825mhiIiCjQwy+GmsiMf5ofnVs7Fe3E0bJLdX8npPBy1BGZnVN4vd+j74Vl/Dtziy5uqFe9bPgYZk3jOBcfnDWrpAdh1Qmt1D4ZBqD0afShSyyMi0N2+B+R58bMuWj3dzgc4zZp0NjCS/S8Qt6c9Q/bYF58hA9rGKGydoKcfmdC80SUPgbYa3UKnEJo+oxtuhZlNB7A+KqccQmfPHgq/Ra4BR3ImUokhW68GVqCB1378ynNAML4vdhTHWBVRnsG+gvk1slrRsH1yOqBQo5IWMkWO8SD2OGp56u7P96m9Oh1yXhPxfCFp/9K/5IWSJ3DsA+TjieUPJW7jbMamw/CQvIOpv+VEfkorh9Oxijf22qt88/dN5OZ6Az2IAxQwBZI7D9BISnibj/w=
  on:
    branch: master
after_deploy: 
  - docker pull "${IMAGE_NAME}:develop" || true
  - docker build --pull --cache-from "${IMAGE_NAME}:develop" --tag "$IMAGE_NAME" .
  - docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASS"
  - git_sha="$(git rev-parse --short HEAD)"
  - docker tag "$IMAGE_NAME" "${IMAGE_NAME}:develop"
  - docker tag "$IMAGE_NAME" "${IMAGE_NAME}:${git_sha}-develop"
  - docker push "${IMAGE_NAME}:develop" && docker push "${IMAGE_NAME}:${git_sha}-develop"

特拉维斯ci

Travis CI

工作服

Coveralls

包存储库[pypi]

PyPI

Docker注册表[Docker Hub]

Docker Hub

有用链接

Ruby Installer for Windows

安装travis

geminstalltravis

学分

Coding Tips: Patterns for Continuous Integration with Docker on Travis CI - Part 2 of 3: The “Docker repo” pattern

Defining encrypted variables in .travis.yml

Google Cloud | Continuous Delivery with Travis CI

Continuous Integration. CircleCI vs Travis CI vs Jenkins

Continuous Integration with Jenkins and Docker

+-

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Rest DSL路由无法启动路由,因为同一端点不允许有多个使用者   jvm有没有像JConsole或VisualVM这样的工具可以告诉我“类、对象、引用变量在java中存储在哪里?”   java为什么我的列表中的所有元素看起来都一样?   java运行时。运行shell脚本的exec无法打开文件   JPopupMenu的JMenuItem的java热键   会话在Java中被覆盖   如何在java中去除字符串中的尖锐重音?   java Mockito监视一个接口,模拟它的默认方法,获取NullPointerException   javascript如何在jquery中禁用同一时间选择   将数组列表附加到现有CSV文件,但它会附加并清除存储在Java文件中的以前的数据   java从我的jar中访问pdf文件   java Sonar issue参数必须为非Null,但标记为可为Null   java Salesforce流式API:在网络故障之后和重新订阅之前获取事件   在Java 1.8.0_65上运行Play2.0应用程序时出现playframework错误   java为什么字母的ASCII由方法自动转换。toCharArray()?   java如何知道JDialog是否关闭?   java向服务器发送POST请求,服务器的响应为null,启动   java如何设置JTable中特定单元格的值?   ImagePlus中的java保存问题