Genesis CI Tools
Helpful tools for Continuous Integration (CI) of Genesis projects. The tools are based on CLI utilities that simplify interacting with the Genesis installation.
The main command is genesis-ci. It allows to create nodes, configs and other entities in the Genesis installations. For example, the genesis-ci nodes list command will list all nodes in the Genesis installation. genesis-ci --help will show all available commands.
📦 Installation
Install required packages:
Ubuntu:
sudo apt-get install libev-dev
Fedora:
sudo dnf install libev-devel
Initialize virtual environment with the package:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
🚀 Usage
After installation the genesis-ci command will be available in the terminal. For example, genesis-ci nodes list will list all nodes in the Genesis installation. Below you can find most useful commands:
Create nodes with specified parameters:
genesis-ci -e http://127.0.0.1:11010 -u test -p test nodes add \
--project-id 00000000-0000-0000-0000-000000000000 \
--image "http://10.20.0.1:8080/genesis-base.raw" \
--cores 4 \
--ram 8192 \
--root-disk 20 \
--name "my-node"
List nodes:
genesis-ci -e http://127.0.0.1:11010 -u test -p test nodes list
List configs:
genesis-ci -e http://127.0.0.1:11010 -u test -p test configs list
Delete node:
genesis-ci -e http://127.0.0.1:11010 -u test -p test nodes delete 00000000-0000-0000-0000-000000000001
Configs from environment variables
One of the useful feature that need more explanation is the ability to create configs for nodes from environment variables. For this purpose we have genesis-ci configs add-from-env command. There are two formats of configurations that can be used to delivered to the node:
- As environment variables
- As plain text
In the environment variable all values should be placed in single file by path --env-path. To detect such variables the --env-prefix prefix will be used. The default value for this variable is GCT_ENV_. For example, if we have the variable GCT_ENV_FOO=bar it will be add to the config as FOO=bar on the node.
export GCT_ENV_FOO=bar
genesis-ci -e http://127.0.0.1:11010 -u test -p test configs add-from-env \
--project-id <project-uuid> \
<node-uuid>
# ... On the node ...
cat /var/lib/genesis/app.env
FOO=bar
Where /var/lib/genesis/app.env is default path.
There are two supported formats for the env file: env and json, use option --env-format to set the format.
In the plain text we need to specify at least two variables for path and content.
export GCT_CFG_TEXT_FOO='My content!'
export GCT_CFG_PATH_FOO=/home/my-user/config.txt
genesis-ci -e http://127.0.0.1:11010 -u test -p test configs add-from-env \
--project-id <project-uuid> \
<node-uuid>
# ... On the node ...
cat /home/my-user/config.txt
My content!
--cfg-prefix set the prefix for config variables. The default value is GCT_CFG_. Also the content can be decoded from base64. Use --base64 flag to enable it.
💡 Contributing
Contributing to the project is highly appreciated! However, some rules should be followed for successful inclusion of new changes in the project:
- All changes should be done in a separate branch.
- Changes should include not only new functionality or bug fixes, but also tests for the new code.
- After the changes are completed and tested, a Pull Request should be created with a clear description of the new functionality. And add one of the project maintainers as a reviewer.
- Changes can be merged only after receiving an approve from one of the project maintainers.
Metadata
Release files for genesis-ci-tools 1.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| genesis_ci_tools-1.0.5.tar.gz | 210.3 kB | With provenance | Details for genesis_ci_tools-1.0.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| genesis_ci_tools-1.0.5-py3-none-any.whl | Python 3 | none | any | Details for genesis_ci_tools-1.0.5-py3-none-any.whl |
Total release size: 231.9 kB
Release files / genesis_ci_tools-1.0.5.tar.gz
| Download URL | genesis_ci_tools-1.0.5.tar.gz |
|---|---|
| Size | 210.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bfbef1b735ce0696e0dfb441c850e28cc3be298096b8e31ec6a3d68fac8231fd
|
|
BLAKE2b-256 checksum How to use checksums |
bad28df531eb428813fe53eb0b06627a8968e86f8e9c341d09b313e8822a00c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency logRelease files / genesis_ci_tools-1.0.5-py3-none-any.whl
| Download URL | genesis_ci_tools-1.0.5-py3-none-any.whl |
|---|---|
| Size | 21.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6f1b9d42bef01aa2260a03cd5b981d06d21abeeb424908ce3beaa5167ffe90f9
|
|
BLAKE2b-256 checksum How to use checksums |
f0b7f1dc285391c4d60c6c2b95abd86f744d52125493bfbebf30f9b0b7066b10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency logSecurity for genesis-ci-tools 1.0.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for genesis_ci_tools-1.0.5.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.