Skip to main content

Script to generate Dockerfile from .travis.yml file

Project description

Script to generate Dockerfile from .travis.yml file

  • Free software: BSD license

Installation

pip install travis2docker

Usage

travisfile2dockerfile REPO_URL BRANCH

Or with pull request

travisfile2dockerfile REPO_URL pull/##

In REPO_URL use the ssh url of github.

For more information execute:

travisfile2dockerfile –help

Example:

travisfile2dockerfile –root-path=$HOME/t2d git@github.com:Vauxoo/forecast.git 8.0

The output is:

${HOME}/t2d/script/git_github.com_Vauxoo_forecast.git/8.0/1 ${HOME}/t2d/script/git_github.com_Vauxoo_forecast.git/8.0/2

The first one is the build for env TESTS=1, the second one is for env with LINT_CHECK=1

To build image:

${HOME}/t2d/script/git_github.com_Vauxoo_forecast.git/8.0/1/10-build.sh

To create container:

${HOME}/t2d/script/git_github.com_Vauxoo_forecast.git/8.0/1/20-run.sh –entrypoint=bash

To run the test (into of container):

/entrypoint.sh

Depends

SSH key without password

Dockerfile doesn’t support a prompt to enter your password, so you need to remove it from your ssh keys.

export fname=~/.ssh/id_rsa
cp ${fname} ${fname}_with_pwd
openssl rsa -in ${fname} -out ${fname}_without_pwd
cp ${fname}_without_pwd ${fname}

Download the big image

Travis2docker uses a default image with many packages pre-installed.

docker pull vauxoo/odoo-80-image-shippable-auto

Note: You can define a custom image to use with –docker-image parameter.

For example if you want use the original image of travis you can add the following parameters:

–docker-image=quay.io/travisci/travis-python –docker-user=travis

Install docker

https://docs.docker.com/engine/installation/

Documentation

https://travis2docker.readthedocs.io/

Development

To run the all tests run:

tox

Note, to combine the coverage data from all the tox environments run:

Windows

set PYTEST_ADDOPTS=--cov-append
tox

Other

PYTEST_ADDOPTS=--cov-append tox

Release process

This project uses bump2version to manage version bumps across .bumpversion.cfg, docs/conf.py, setup.py and src/travis2docker/__init__.py.

Requirements

  • Write access to push to main and to push tags.

  • A GPG key configured for signing git tags. The CI pipeline that publishes the package to PyPI only builds from signed tags:

    git config --global user.signingkey <YOUR_GPG_KEY_ID>
  • bump2version installed:

    pip install bump2version

Steps to release a new version

  1. Make sure you are on main and it is up to date, with no local commits ahead of origin:

    git checkout main
    git pull origin main
    git status  # must be clean
  2. Bump the version. This creates a commit and a tag automatically (choose patch, minor or major as needed):

    bump2version patch

    This updates:

    .bumpversion.cfg
    docs/conf.py
    setup.py
    src/travis2docker/__init__.py
  3. Verify the tag was created and that it is signed:

    git tag -v vX.Y.Z

    If sign_tags is not enabled in .bumpversion.cfg, the tag created in step 2 will not be signed and the CI build/publish step will not run. In that case, re-create the tag manually before pushing:

    git tag -d vX.Y.Z
    git tag -s vX.Y.Z -m "vX.Y.Z"

    To avoid this every time, add the following to .bumpversion.cfg:

    [bumpversion]
    current_version = X.Y.Z
    commit = True
    tag = True
    sign_tags = True
  4. Push the branch and the tag:

    git push origin main --tags

    Pushing the signed tag is what triggers the CI job that builds and publishes the package to PyPI.

Troubleshooting

  • “tag already exists” / dirty working tree: make sure git status is clean and git pull origin main was run before bump2version, otherwise the bump commit/tag will be based on stale history.

  • CI does not trigger a PyPI build: check that the pushed tag is signed (git tag -v vX.Y.Z should show a valid GPG signature) and that user.signingkey is configured correctly.

Changelog

3.0.0 (2016-07-26)

  • First release on PyPI.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

travis2docker-6.4.25.tar.gz (38.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

travis2docker-6.4.25-py2.py3-none-any.whl (35.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file travis2docker-6.4.25.tar.gz.

File metadata

  • Download URL: travis2docker-6.4.25.tar.gz
  • Upload date:
  • Size: 38.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for travis2docker-6.4.25.tar.gz
Algorithm Hash digest
SHA256 dfd1d689c4e965cd3b51bc407bc35863300a4bc97b789c839637bad489e55594
MD5 7775108eaebc9bdbb796ab8833d7b62c
BLAKE2b-256 a185195e4f5d4b6f2b351b5a3f5d54d445a292c32ab45676bc7bd245beb43a12

See more details on using hashes here.

File details

Details for the file travis2docker-6.4.25-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for travis2docker-6.4.25-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4e5a518523a2d41e1be1690a6bd811234691f2a26861a863af7c5df7a5ad769a
MD5 eb9678b7393901595ba3def76c92253e
BLAKE2b-256 428a70e6eeefce3f88a8e6a04f1640f2dea319a7ccf5c59c944a019ead53534b

See more details on using hashes here.

Supported by

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