Skip to main content

No project description provided

Project description

Patterns for Continuous Integration with Docker using Travis CI 2 - Dev. Repo

Full story: Patterns of Continuous Integration for Data Science Python Projects

Build Status PyPI version Coverage Status Documentation Status

Conceptual Schema

The “Docker repo” pattern: create two separate Git repositories: one for Docker release and another for software development. This keeps the Docker-specific code isolated from the actual software. Developers can continue working on the source software as usual, while the production Docker image is developed separately

This repository is an example of the Git repository for software development. For an example of Git repository for Docker release, see Patterns for Continuous Integration with Docker using Travis CI 2 - Prod. Repo.

Team uses different branches for development and, a certain point, pull-requests for merge the master branch are done. For each one of them, committing the master branch:

  • modifying the version number in setup.py, a new release will be created on the package repository (e.g. PyPI),
  • modifying MkDocs mkdocs.yml and Markdown files under doc/ a new documentation is build by Read The Docs and published on-line for consultation,
  • Travis CI builds, tests and packages the software by using py.test and measuring code coverage of Python code.
  • if such tests are successful:
    • code coverage stats are published on coveralls.io through coveralls,
    • Travis CI does a release of the software by uploading the package to the package repository (e.g. PyPI),
    • Travis CI does two new docker development images, e.g. e59cbe8-develop (image for last commit on master branch) and develop (the official develop image of the project), on the Docker Registry, e.g. Docker Hub.

Dockerfile

FROM python:3.6

COPY . /myproject
WORKDIR /myproject
RUN 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

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"

Travis CI

Travis CI

Coveralls

Coveralls

Package repository [PyPI]

PyPI

Docker Registry [Docker Hub]

Docker Hub

Useful links

Ruby Installer for Windows

To install Travis

gem install travis

Credits

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-dev-docker-project-0.5.3.dev0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

python_dev_docker_project-0.5.3.dev0-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file python-dev-docker-project-0.5.3.dev0.tar.gz.

File metadata

  • Download URL: python-dev-docker-project-0.5.3.dev0.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.3

File hashes

Hashes for python-dev-docker-project-0.5.3.dev0.tar.gz
Algorithm Hash digest
SHA256 db66818b0badfd764079efc7d38a3baa04f2c09e5e7bfbcebc2e1addd7e5702a
MD5 b689edceb685abb4ca94a66e8909a4dd
BLAKE2b-256 2d67167e7cc3d2e546d833f1035c1795abfabf233dc19ee237b68121260484ad

See more details on using hashes here.

File details

Details for the file python_dev_docker_project-0.5.3.dev0-py2.py3-none-any.whl.

File metadata

  • Download URL: python_dev_docker_project-0.5.3.dev0-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.27.0 CPython/3.6.3

File hashes

Hashes for python_dev_docker_project-0.5.3.dev0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c476b6c8d155d6871dd462f74ffd959c71465e41fff28b22ed21b288669fc129
MD5 9ca47892bbe7c0be52acf17a247a5cb6
BLAKE2b-256 12c3a93b1fe5aa5f1526f84b093869ee940ebf689efd03d0234de7ead947aa88

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page