Skip to main content

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 implementation
  • src/sdci/client.py: Client implementation for communicating with the server
  • src/sdci/command.py: CLI interface using Click
  • src/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:

  1. Server Component (server.py): The FastAPI server that handles task execution requests
  2. Client Components (client.py, command.py): Handle communication with the server and provide CLI interface
  3. Runner Component (runner.py): Manages the execution of shell script tasks
  4. Tasks (test_job_1.sh): Shell scripts that define the actual tasks to be executed

👤 Author

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sdci-0.1.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sdci-0.1.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file sdci-0.1.1.tar.gz.

File metadata

  • Download URL: sdci-0.1.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.4

File hashes

Hashes for sdci-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a8d73d9cd530c9799b6a523d768fae4f5e363f2f0847b6454e1c75523249d77b
MD5 d4487ae5d82b78e7f1786f94611b117a
BLAKE2b-256 aefcd3d48facf7a77032415e24041adab089eb6a32ead145e8dfbe4abc977758

See more details on using hashes here.

File details

Details for the file sdci-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: sdci-0.1.1-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

Hashes for sdci-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8511e5670e4a566358c836c3c76d0b4779df68902537e36237c606653a3cafed
MD5 70770f23d5ff53cf45c7f411177e44ae
BLAKE2b-256 31ded670f3b58b0ed318cfa1cafbbf42c613bbddc8af0412e5777f52caf8e050

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page