Skip to content

Commit 0a95649

Browse files
Jotis86Copilot
andcommitted
add README.md with project overview, templates, setup instructions, and CI details
Co-authored-by: Copilot <copilot@github.com>
1 parent 661665c commit 0a95649

1 file changed

Lines changed: 104 additions & 0 deletions

File tree

README.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
<div align="center">
2+
3+
# ⚡ Yamly
4+
5+
**Aprende, explora y descarga plantillas de GitHub Actions listas para usar**
6+
7+
[![Lint](https://github.com/Jotis86/yamly/actions/workflows/lint.yml/badge.svg)](https://github.com/Jotis86/yamly/actions/workflows/lint.yml)
8+
![Python](https://img.shields.io/badge/Python-3.14-3776AB?logo=python&logoColor=white)
9+
![Streamlit](https://img.shields.io/badge/Streamlit-1.56+-FF4B4B?logo=streamlit&logoColor=white)
10+
![Ruff](https://img.shields.io/badge/linter-ruff-D7FF64?logo=ruff&logoColor=black)
11+
![Docker](https://img.shields.io/badge/Docker-ready-2496ED?logo=docker&logoColor=white)
12+
![License](https://img.shields.io/badge/license-MIT-green)
13+
14+
</div>
15+
16+
---
17+
18+
## ¿Qué es Yamly?
19+
20+
Yamly es una aplicación web construida con **Streamlit** que actúa como hub de referencia para **GitHub Actions**. Ofrece tres secciones principales:
21+
22+
- 🏠 **Inicio** — visión general de las categorías y acceso rápido a las plantillas
23+
- 📦 **Plantillas** — 12 workflows listos para copiar, filtrar por categoría y descargar
24+
- 📚 **Aprende** — guía educativa con conceptos clave, eventos, secretos y buenas prácticas
25+
26+
---
27+
28+
## Plantillas incluidas
29+
30+
| # | Nombre | Categoría | Nivel |
31+
|---|--------|-----------|-------|
32+
| 1 | Python CI | CI/CD | 🟢 Principiante |
33+
| 2 | Node.js CI | CI/CD | 🟢 Principiante |
34+
| 3 | Docker Build & Push | CI/CD | 🟡 Intermedio |
35+
| 4 | Deploy to GitHub Pages | Despliegue | 🟢 Principiante |
36+
| 5 | Auto Release | Automatización | 🟡 Intermedio |
37+
| 6 | CodeQL Security Scan | Seguridad | 🟡 Intermedio |
38+
| 7 | Dependabot Auto-merge | Automatización | 🟡 Intermedio |
39+
| 8 | PR Auto-labeler | Automatización | 🟢 Principiante |
40+
| 9 | Stale Issues & PRs | Automatización | 🟢 Principiante |
41+
| 10 | Multi-environment Deploy | Despliegue | 🔴 Avanzado |
42+
| 11 | Super Linter | Calidad de Código | 🟢 Principiante |
43+
| 12 | SonarCloud Analysis | Calidad de Código | 🟡 Intermedio |
44+
45+
---
46+
47+
## Puesta en marcha
48+
49+
### Con uv (recomendado)
50+
51+
```bash
52+
# Instalar dependencias
53+
uv sync
54+
55+
# Ejecutar la app
56+
uv run streamlit run main.py
57+
```
58+
59+
### Con Docker
60+
61+
```bash
62+
# Construir y levantar
63+
docker compose up --build
64+
65+
# Solo levantar (si la imagen ya existe)
66+
docker compose up
67+
```
68+
69+
La app queda disponible en **http://localhost:8501**.
70+
71+
---
72+
73+
## Estructura del proyecto
74+
75+
```
76+
yamly/
77+
├── main.py # Entrypoint de Streamlit
78+
├── pyproject.toml # Dependencias y configuración
79+
├── Dockerfile # Build multi-stage con uv
80+
├── docker-compose.yml
81+
├── .github/
82+
│ └── workflows/
83+
│ └── lint.yml # Ruff en cada push/PR
84+
└── app/
85+
├── config.py # Constantes globales
86+
├── components/ # Estilos, sidebar, cards, viewer
87+
├── pages/ # home, explorer, learn
88+
└── templates/ # Modelos y catálogo de plantillas
89+
```
90+
91+
---
92+
93+
## CI
94+
95+
Cada push y pull request ejecuta **Ruff** automáticamente mediante la action oficial [`astral-sh/ruff-action`](https://github.com/astral-sh/ruff-action). La configuración se lee directamente desde `pyproject.toml`.
96+
97+
---
98+
99+
## Stack
100+
101+
- **[Streamlit](https://streamlit.io/)** — framework de la interfaz web
102+
- **[uv](https://github.com/astral-sh/uv)** — gestión de dependencias y entornos
103+
- **[Ruff](https://github.com/astral-sh/ruff)** — linter y formatter de Python
104+
- **[Docker](https://www.docker.com/)** — contenedorización con build multi-stage

0 commit comments

Comments
 (0)