FutoIn Continuous Integration & Delivery Tool
Project description
Intro
There are many continuous integration & delivery tools, but they are primarily targeted at own infrastructure. The demand for a new meta-tool is to merge many operation of different technologies like npm, composer, bundler, nvm, rvm, php-build and others under a single tool for runtime setup, project development, build, deployment and running.
NOTE: current focus is on web projects, but support of other types is a far target.
Full theoretical details are defined as FutoIn Spec FTN16 available at: https://github.com/futoin/specs/blob/master/draft/ftn16_cid_tool.md
Supported technologies & tools (so far):
cmake (uses make in proper order)
- docker (experimental)
docker-compose
- java (experimental)
java for runtime (uses system packages)
jdk for development (uses system packages)
sdkman for SDK management (besides JRE & JDK)
gradle
maven
make
- node
npm
bower
grunt
gulp
nvm (implicit)
- php - both system & any php-build supported
composer
php-build (implicit)
- python - system 2 & 3
virtualenv, venv is ignored due to issues with ensurepip package
pip
- ruby - both system & any rvm supported
gen
bundler
rvm (implicit)
scp - for RMS
Tested on the following OSes:
- ArchLinux
latest
- CentOS
7 with EPEL repository enabled
- Debian
8 - Jessie
9 - Stretch
- Fedora
25
- Gentoo
Well… CID does support emerge, but you are on your own here ;)
- OpenSUSE
42.1 Leap
- Ubuntu
14.04 LTS - Trusty
16.04 LTS - Xenial
16.10 - Yakkety
- Other Linux
it should work without issues, if system packages are installed manually
Setup
cid is written in commonly available Python language supporting both Python versions 2.7 and 3+.
Run the following:
pip install futoin-cid
If pip is not available then it’s strongly suggested to install one first:
easy_install pip
To allow cid automatically install system packages, please allow execution of apt-get, dnf, zypper or yum in sudoers. Example:
username ALL=(ALL) NOPASSWD: /usr/bin/apt-get install username ALL=(ALL) NOPASSWD: /usr/bin/apt-get install * username ALL=(ALL) NOPASSWD: /usr/bin/dnf install username ALL=(ALL) NOPASSWD: /usr/bin/dnf install * username ALL=(ALL) NOPASSWD: /usr/bin/emerge username ALL=(ALL) NOPASSWD: /usr/bin/emerge * username ALL=(ALL) NOPASSWD: /usr/bin/pacman username ALL=(ALL) NOPASSWD: /usr/bin/pacman * username ALL=(ALL) NOPASSWD: /usr/bin/zypper install username ALL=(ALL) NOPASSWD: /usr/bin/zypper install * username ALL=(ALL) NOPASSWD: /usr/bin/yum install username ALL=(ALL) NOPASSWD: /usr/bin/yum install *
Note: there are duplications with asterisk as some OSes have patched sudo
Usage
Please see details in the FTN16 spec:
cid tag <branch> [<next_version>] [--vcsRepo vcs_url] [--wcDir wc_dir] cid prepare [<vcs_ref>] [--vcsRepo vcs_url] [--wcDir wc_dir] cid build cid package cid check [--permissive] cid promote <package> <rms_pool> [--rmsRepo rms_url] [--rmsHash type_value] cid deploy vcstag [<vcs_ref>] [--vcsRepo vcs_url] [--redeploy] [--deployDir deploy_dir] cid deploy vcsref <vcs_ref> [--vcsRepo vcs_url] [--redeploy] [--deployDir deploy_dir] cid deploy [rms] <rms_pool> [<package>] [--rmsRepo rms_url] [--rmsHash type_value] [--redeploy] [--deployDir deploy_dir] [--build] cid run [<command>] cid ci_build <vcs_ref> <rms_pool> [--vcsRepo vcs_url] [--rmsRepo rms_url] [--permissive] cid tool exec <tool_name> [-- <tool_arg>...] cid tool (install|uninstall|update|test|env) [<tool_name>] cid tool (prepare|build|check|package|migrate) <tool_name>
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
Hashes for futoin_cid-0.4.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4c428e4e734986b5b204cf95de4a5290a2c086629acfe22ad14c8dd117d45c1 |
|
MD5 | d72e8aa1335ff6c3c5b6c48c3a250455 |
|
BLAKE2b-256 | 06f0456d4f713c1bc9dabb515cd16f70b8959d74ca4078e4a371e2f4547f8fdb |