Skip to main content

ci_exec

Documentation Status Azure Pipelines Build Status Travis CI Build Status Code Coverage Report PyPI Version PyPI - Python Version License Apache 2.0

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.

Metadata

Release files for ci-exec 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ci-exec 0.1.2
File Size Uploaded
ci_exec-0.1.2.tar.gz 32.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ci-exec 0.1.2
File Interpreter ABI Platform
ci_exec-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 69.6 kB

Release files / ci_exec-0.1.2.tar.gz

Download URL ci_exec-0.1.2.tar.gz
Size 32.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e3dff7d119c5f82fdff64d86abacf19fc91126b842d9edf52c501042dcdfdd88
BLAKE2b-256 checksum
How to use checksums
7fcc8ed9688e56a445a2f6d47799e04675b57eea573356260d9bf5037d705f97
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / ci_exec-0.1.2-py3-none-any.whl

Download URL ci_exec-0.1.2-py3-none-any.whl
Size 37.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
755d20269a431cdd69df1f61c0b0a9901ab7ba9031fa0c85df247a9aa1c47c3b
BLAKE2b-256 checksum
How to use checksums
b012b5d7957dbdfe25c8b0d696ab65647e99df3a49441ace47051b7796250ab3
Upload date
Uploaded using Trusted Publishing?
What is 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

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page