SDCI - Sistema de Deploy Continuo Integrado - Integrated Continuous Deployment System - Sidecar Micro CD
Project description
🚀 SDCI - Sistema de Deploy Continuo Integrado
SDCI (Sistema de Deploy Continuo Integrado - Integrated Continuous Deployment System) is a lightweight continuous deployment system consisting of a server and client tool. It allows you to run predefined tasks remotely through a simple command-line interface.
⚠️ NOTE: This project is currently in ALPHA. A better documentation will be provided soon.
✨ Features
- Server component built with FastAPI
- Command-line client tool for easy task execution
- Token-based authentication
- Real-time task output streaming
- Task status monitoring
📥 Installation
Requirements
- Python 3.13 or higher
Installing the client
pip install sdci
📖 Usage
Starting the server
Run the server component:
python -m src.server
By default, the server runs on 0.0.0.0:8842.
Using the client
The client tool can be used to trigger tasks on the server:
sdci-cli run --token YOUR_TOKEN SERVER_URL TASK_NAME [PARAMETERS...]
Example:
sdci-cli run --token HAPPY123 http://localhost:8842 job_1 param1 param2 param3
Parameters
--token: Authentication token (required)SERVER_URL: URL of the SDCI server (required)TASK_NAME: Name of the task to run (required)PARAMETERS: Optional parameters to pass to the task
🖥️ Server
The SDCI server component is currently in development. The goal is to create a Docker image that will be used as a sidecard in production environments, making it easily deployable alongside your main applications.
Docker Deployment
A Docker image will be provided that allows you to run the SDCI server with minimal configuration. This image is designed to work as a sidecard container in your production environment.
📁 Project Structure
src/server.py: FastAPI server implementationsrc/sdci/client.py: Client implementation for communicating with the serversrc/sdci/command.py: CLI interface using Clicksrc/tasks/: Directory containing task definitions as basic shell scripts.
Project Structure Diagram
graph TD
A[SDCI Project] --> B[src]
A --> C[pyproject.toml]
A --> D[README.md]
B --> E[server.py]
B --> F[sdci]
B --> G[tasks]
B --> H[log_conf.yaml]
F --> I[client.py]
F --> J[command.py]
F --> K[runner.py]
F --> L[exceptions.py]
F --> M[__init__.py]
G --> N[test_job_1.sh]
%% Component relationships
E -.uses.-> K
I -.uses.-> E
J -.uses.-> I
K -.executes.-> N
%% Class descriptions
classDef server fill:#f9d,stroke:#333,stroke-width:2px
classDef client fill:#bbf,stroke:#333,stroke-width:2px
classDef runner fill:#bfb,stroke:#333,stroke-width:2px
classDef tasks fill:#fbb,stroke:#333,stroke-width:2px
classDef config fill:#ddd,stroke:#333,stroke-width:1px
class E server
class I,J client
class K runner
class N tasks
class C,D,H,L,M config
The diagram above shows the structure of the SDCI project:
- Server Component (
server.py): The FastAPI server that handles task execution requests - Client Components (
client.py,command.py): Handle communication with the server and provide CLI interface - Runner Component (
runner.py): Manages the execution of shell script tasks - Tasks (
test_job_1.sh): Shell scripts that define the actual tasks to be executed
👤 Author
- Jonhnatha Trigueiro joepreludian@gmail.com
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 sdci-0.1.0.tar.gz.
File metadata
- Download URL: sdci-0.1.0.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e4c7e6520b07d7605d350a54e60ab6cf2365dba60c513254feef2d377f4998f
|
|
| MD5 |
6e62dbca4476a9ecc9e6086b7ad9d05f
|
|
| BLAKE2b-256 |
64a6a1abed1e8aae21b2b08bfd2930eea332b9e2381becd75ebfa7a510d9d5d4
|
File details
Details for the file sdci-0.1.0-py3-none-any.whl.
File metadata
- Download URL: sdci-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
745c65bdb42e2f0416e4005d7e78c19ecdd46bbf9e3571146edec37346e7ea4e
|
|
| MD5 |
eb0cbf27ccb65c2c7c28c110eb33945d
|
|
| BLAKE2b-256 |
cba7aae45c01d76862c7024c2164bd26308c9a94b6429804b3d7f69d1edb4cd7
|