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-0.0.1-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.8.tar.gz (24.9 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.8-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for anubis_cli-0.0.8.tar.gz
Algorithm Hash digest
SHA256 8fa0770196687eeba1885f29417f24b61f42a210b28424d3c2ad67f719d417d8
MD5 20e56202944a3af268685b9ef4fffa8a
BLAKE2b-256 66dd2c5c2080cf454fecf3e6e8048acf82d3e4eddccd140c8c036d2667f89e9f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: anubis_cli-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.5.23

File hashes

Hashes for anubis_cli-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 045d5b379af71d572e005b09f2f4e4cfb606b085aa132ab12aca0e3ce55b6df9
MD5 dd7730feaa98d6938977a61a48c94a38
BLAKE2b-256 429f18b48a4382a951bdbb6c0cacbdbc3c5565e708182b5b287121c786bd30d8

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