Skip to main content

Sbayt Anubis CLI

Project description

𓁢 Anubis CLI

Automated Network & User Base Installation Service

Package version Supported Python versions


Descripción

Esta herramienta define y organiza un conjunto de tareas automatizadas para configurar y gestionar entornos de desarrollo/producción. Utiliza invoke para estructurar las tareas y rich para mejorar la experiencia en terminal.

Características principales

  • Instalación local y gestión de herramientas CLI esenciales (AWS CLI, Bitwarden CLI).
  • Configuración de repositorios privados (CodeArtifact) para pip y uv.
  • Automatización de servicios Docker (crear red, iniciar, detener, limpiar, construir).
  • Verificación de configuraciones de seguridad y entorno local (Bitwarden, AWS ECR, etc.).

Instalación global

Para instalar la herramienta de forma global, puedes utilizar uv(recomendado) o pipx.

# Con uv (recomendado)
uv tool install anubis-cli
# Con pipx
pipx install anubis-cli

Requisitos

  • Python 3.9 o superior.
  • uv para instalar herramientas globalmente.
  • Un archivo de despliegue (local o global, por defecto: deployment.yml) para definir perfiles y credenciales.

Uso básico

  1. Ver tareas disponibles: anubis help
  2. Verificar tu entorno local: anubis check.environment
  3. Iniciar servicios Docker con perfiles específicos: anubis docker.up --profiles=infra,api --env=prod
  4. Configurar pip para CodeArtifact: anubis aws.configure-pip

Configurar autocompletado para anubis:

# Para bash
anubis --print-completion-script bash > ~/.anubis-completion.bash
echo "source ~/.anubis-completion.bash" >> ~/.bashrc
source ~/.bashrc
# Para zsh
anubis --print-completion-script zsh > ~/.anubis-completion.zsh
echo "source ~/.anubis-completion.zsh" >> ~/.zshrc
source ~/.zshrc

Para más detalles o ejemplos adicionales, consulta la documentación de cada tarea usando el comando anubis --list o revisa los docstrings individuales.

Configuración del Entorno de Desarrollo

A continuación se indica cómo preparar el entorno de desarrollo.

Requisitos

Configuración

  1. Crea el entorno virtual:

    uv sync
    
  2. Comprobar que el entorno virtual se ha creado correctamente:

    uv pip check
    uv tree
    
  3. Utiliza el entorno virtual:

    Al utilizar uv como gestor de paquetes, podemos utilizar el entorno de varias maneras:

    • (Recomendado) Utilizar el comando un run <comando> para ejecutar comandos dentro del entorno virtual:

      uv run anubis
      uv run pytest -m unit
      
    • Activar el entorno virtual:

         source .venv/bin/activate
      

Manejo de Dependencias

Al utilizar uv como gestor de paquetes, podemos manejar las dependencias de nuestro proyecto de manera sencilla. Cuando se instala una dependencia, se guarda en el archivo uv.lock para que se pueda reproducir el entorno en otro lugar, además de añadirlo al archivo pyproject.toml en su sección correspondiente.

Para instalar nuevas dependencias o actualizar una existente, simplemente ejecuta el siguiente comando:

uv add <package>

Para añadir las dependencias de desarrollo, ejecuta el siguiente comando:

uv add --dev <package>

Para eliminar una dependencia, ejecuta el siguiente comando:

uv remove <package>
uv remove --dev <package>

También se pueden exportar las dependencias a un archivo requirements.txt:

uv export --no-hashes -o requirements.txt

Creación de un nuevo paquete

Para crear un nuevo paquete en desarrollo, sigue los siguientes pasos:

  1. Ejecuta el siguiente comando para crear un nuevo paquete:

    uv build
    
  2. Se creará la carpeta distcon el paquete y su wheel.

  3. Instala el paquete en tu entorno virtual en otro proyecto:

    Mueve la carpeta dist al directorio raíz del proyecto y ejecuta el siguiente comando:

    uv tool install --from dist/anubis_cli-{version}-py3-none-any.whl anubis-cli
    

Despliegue del Paquete

Al ejecutar el workflow CI.yml, se desplegará el paquete en PyPI.

GitHub Actions

El archivo ci.yml contiene un flujo de trabajo que se ejecuta en cada push a la rama master. Este flujo de trabajo consta de los siguientes trabajos:

fetch

Realiza la acción de checkout del código fuente desde el repositorio.

lint

Realiza las siguientes acciones:

  • Checkout del código fuente.
  • Configura Python utilizando la acción setup-python.
  • Configura uv.
  • Sincroniza las dependencias utilizando uv.
  • Verifica los paquetes instalados.
  • Ejecuta los hooks de pre-commit para asegurar la calidad del código.

test

Utiliza una estrategia de matriz para probar en múltiples versiones de Python (3.10, 3.11, 3.12).

Realiza las siguientes acciones:

  • Checkout del código fuente.
  • Configura Python utilizando la acción setup-python.
  • Configura uv.
  • Sincroniza las dependencias utilizando uv.
  • Ejecuta las pruebas unitarias utilizando pytest.
  • Ejecuta las pruebas de integración utilizando pytest.

scan

Realiza las siguientes acciones:

  • Checkout del código fuente.
  • Ejecuta el escáner de vulnerabilidades Trivy en modo repositorio para buscar vulnerabilidades críticas y altas en el código, secretos y configuraciones.

publish

Realiza las siguientes acciones:

  • Checkout del código fuente.
  • Configura Python utilizando la acción setup-python.
  • Configura uv.
  • Construye y publica el paquete a PyPI.

Ejecución de los Tests

Si deseas ejecutar todos los tests (unitarios y de integración) en el directorio tests, simplemente puedes ejecutar pytest sin especificar un directorio:

uv run pytest

Esto ejecutará todos los tests que pytest pueda encontrar en el directorio actual y sus subdirectorios.

Ejecución de Tests Unitarios

Para ejecutar solo los tests unitarios, que estarían organizados en el directorio tests/unit:

uv run pytest tests/unit

Esto ejecutará todos los tests unitarios que se encuentren en ese directorio y sus subdirectorios.

También puedes especificar un archivo específico si solo deseas ejecutar los tests de un archivo particular:

uv run pytest tests/unit/test_module1.py

Ejecución de Tests de Integración

Para ejecutar solo los tests de integración, que estarían organizados en el directorio tests/integration:

uv run pytest tests/integration

Esto ejecutará todos los tests de integración que se encuentren en ese directorio y sus subdirectorios.

Al igual que con los tests unitarios, puedes especificar un archivo específico si solo deseas ejecutar los tests de un archivo particular:

uv run pytest tests/integration/test_integration_module1.py

Marcadores o Tags

Además, pytest permite usar marcadores o tags para categorizar tus tests y ejecutar solo aquellos marcados con un cierto tag.

Esto es útil si quieres ejecutar un grupo específico de tests independientemente de su ubicación en el directorio.

Por ejemplo, si tienes marcadores como @pytest.mark.unit y @pytest.mark.integration, puedes ejecutar solo los tests marcados como unitarios o de integración de esta manera:

uv run pytest -m unit  # Ejecuta solo tests marcados como unit
uv run pytest -m integration  # Ejecuta solo tests marcados como integration

Contributing

For a complete guide on how to contribute to the project, please review the Contribution Guide.

Reporting Issues

If you believe you've found a defect in this project or its documentation, open an issue in Jira so we can address it.

If you're unsure whether it's a bug, feel free to discuss it in our forums or internal chat—someone will be happy to help.

Code of Conduct

See the Code of Conduct.

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

anubis_cli-0.0.11.tar.gz (29.0 kB view details)

Uploaded Source

Built Distribution

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

anubis_cli-0.0.11-py3-none-any.whl (29.4 kB view details)

Uploaded Python 3

File details

Details for the file anubis_cli-0.0.11.tar.gz.

File metadata

  • Download URL: anubis_cli-0.0.11.tar.gz
  • Upload date:
  • Size: 29.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.5.23

File hashes

Hashes for anubis_cli-0.0.11.tar.gz
Algorithm Hash digest
SHA256 e503e58ec6067c8b3b93cb2768f1ca976e54a8c5bdc0365e3f3f864d1990591b
MD5 ec02b339e8069d2c992a5eeeabead261
BLAKE2b-256 b5693eaa978d57d12078a049b697d2ef32ad3c36a0a50897983309d4c5520885

See more details on using hashes here.

File details

Details for the file anubis_cli-0.0.11-py3-none-any.whl.

File metadata

File hashes

Hashes for anubis_cli-0.0.11-py3-none-any.whl
Algorithm Hash digest
SHA256 e05a30d78987225871da382fb4d7a4e7ad8571d060bb070b6d8642e203784556
MD5 465f5e473e6b48cc375fcdb5c150149b
BLAKE2b-256 7e0377e3c474cedd5e3e7e64565beca92c0e7dbe6f8f4d6be922388a438f4f03

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