A wrapper package designed for running continuous integration (CI) build steps using Python 3.6+.
Project description
ci_exec
A wrapper package designed for running continuous integration (CI) build steps using Python 3.6+.
Managing cross platform build scripts for CI can become tedious at times when you need to e.g., maintain two nearly identical scripts install_deps.sh and install_deps.bat due to incompatible syntaxes. ci_exec enables a single file to manage this using Python.
The ci_exec package provides a set of wrappers / utility functions designed specifically for running build steps on CI providers. It is
- Logging by Default
Commands executed, including their full command-line arguments, are logged. This includes any output on stdout / stderr from the commands. The logging resembles what set -x would give you in a shell script. For commands that will take a long time, as long as output is being produced, this will additionally prevent timeouts on the build.
- Failing by Default
Any command that does not succeed will fail the entire build. An attempt to exit with the same exit code as the command that failed will be performed. Meaning the CI provider will correctly report a failed build.
- Convenient
ci_exec affords users the ability to write shell-like scripts that will work on any platform that Python can run on. A simple example:
from ci_exec import cd, which cmake = which("cmake") ninja = which("ninja") with cd("build", create=True): cmake("..", "-G", "Ninja", "-DCMAKE_BUILD_TYPE=Release") ninja("-j", "2", "test")
Installation
ci_exec is available on PyPI. It can be installed using your python package manager of choice:
$ pip install ci-exec
There is also a setup.py here, so you can also install it from source:
$ pip install git+https://github.com/svenevs/ci_exec.git@master
License
This software is licensed under the Apache 2.0 license.
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
File details
Details for the file ci_exec-0.1.2.tar.gz
.
File metadata
- Download URL: ci_exec-0.1.2.tar.gz
- Upload date:
- Size: 32.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3dff7d119c5f82fdff64d86abacf19fc91126b842d9edf52c501042dcdfdd88 |
|
MD5 | c034226b3e2c9ac21218e76780d665f1 |
|
BLAKE2b-256 | 7fcc8ed9688e56a445a2f6d47799e04675b57eea573356260d9bf5037d705f97 |
File details
Details for the file ci_exec-0.1.2-py3-none-any.whl
.
File metadata
- Download URL: ci_exec-0.1.2-py3-none-any.whl
- Upload date:
- Size: 37.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 755d20269a431cdd69df1f61c0b0a9901ab7ba9031fa0c85df247a9aa1c47c3b |
|
MD5 | d3d131ed6eaefc35c818a2e0f5cd010c |
|
BLAKE2b-256 | b012b5d7957dbdfe25c8b0d696ab65647e99df3a49441ace47051b7796250ab3 |