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
Documentation
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
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
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
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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfd1d689c4e965cd3b51bc407bc35863300a4bc97b789c839637bad489e55594
|
|
| MD5 |
7775108eaebc9bdbb796ab8833d7b62c
|
|
| BLAKE2b-256 |
a185195e4f5d4b6f2b351b5a3f5d54d445a292c32ab45676bc7bd245beb43a12
|
File details
Details for the file travis2docker-6.4.25-py2.py3-none-any.whl.
File metadata
- Download URL: travis2docker-6.4.25-py2.py3-none-any.whl
- Upload date:
- Size: 35.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e5a518523a2d41e1be1690a6bd811234691f2a26861a863af7c5df7a5ad769a
|
|
| MD5 |
eb9678b7393901595ba3def76c92253e
|
|
| BLAKE2b-256 |
428a70e6eeefce3f88a8e6a04f1640f2dea319a7ccf5c59c944a019ead53534b
|