Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 66 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Build and Validate

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
build-and-validate:
name: Build and Validate Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Run pre-commit checks
uses: pre-commit/[email protected]

- name: Build with MkDocs
run: mkdocs build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Check for broken links
run: |
# Iniciar servidor HTTP en background
cd site && python -m http.server 8000 &
sleep 10

# Ejecutar check de links desde el directorio raíz
cd ${{ github.workspace }}
python scripts/check_links.py

# Verificar resultado
broken_count=$(jq '.summary.broken_links' broken_links.json)

if [ "$broken_count" -gt 0 ]; then
echo "❌ Found $broken_count broken links - failing!"
pkill -f "python -m http.server" || true
exit 1
fi

echo "✅ All links working!"
pkill -f "python -m http.server" || true

# Solo para main: guardar el sitio construido
- name: Upload build artifact
if: github.ref == 'refs/heads/main'
uses: actions/upload-artifact@v4
with:
name: site
path: site/
retention-days: 1
30 changes: 30 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: CI/CD Pipeline

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

permissions:
contents: read
pages: write
id-token: write

jobs:
build-and-validate:
name: Build and Validate
runs-on: ubuntu-latest
steps:
# ... todos los pasos de validación y build ...

deploy:
name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/main'
needs: build-and-validate
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
# ... pasos de deploy ...
52 changes: 19 additions & 33 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
name: Deploy to GitHub Pages

on:
push:
branches: [ main ]
pull_request:
workflow_run:
workflows: ["Build and Validate"]
types:
- completed
branches: [ main ]

permissions:
Expand All @@ -16,45 +17,30 @@ concurrency:
cancel-in-progress: false

jobs:
build:
deploy:
name: Deploy to GitHub Pages
if: github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python
uses: actions/setup-python@v4
- name: Download build artifact
uses: actions/download-artifact@v4
with:
python-version: '3.10'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Build with MkDocs
run: mkdocs build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: site
path: site/
github-token: ${{ secrets.GITHUB_TOKEN }}
run-id: ${{ github.event.workflow_run.id }}

- name: Setup Pages
uses: actions/configure-pages@v4

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
- name: Upload to GitHub Pages
uses: actions/upload-pages-artifact@v4
with:
path: './site'
path: site/

deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
if: github.ref == 'refs/heads/main'
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
20 changes: 17 additions & 3 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
{
"MD001": true,
"MD003": { "style": "atx" },
"MD004": { "style": "dash" },
"MD007": { "indent": 2 },
"MD010": { "spaces_per_tab": 2 },
"MD012": false,
"MD013": { "line_length": 120 },
"MD022": false,
"MD025": true,
"MD026": { "punctuation": ".,;:!?" },
"MD029": { "style": "ordered" },
"MD030": { "ul_single": 1, "ul_multi": 1, "ol_single": 1, "ol_multi": 1 },
"MD031": false,
"MD032": false,
"MD033": false,
"MD034": false,
"MD036": false,
"MD041": false,
"MD013": false,
"MD025": false,
"MD026": false
"MD051": false
}
28 changes: 28 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
repos:
# Hooks básicos
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: ^mkdocs\.yml$ # Excluir mkdocs.yml
- id: check-json
- id: check-added-large-files
- id: check-merge-conflict
# - id: requirements-txt-fixer # Comentado si no lo quieres

# Validación de Markdown - MENOS ESTRICTO para empezar
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.39.0
hooks:
- id: markdownlint
args: ['--config', '.markdownlint.json', '--disable', 'MD012', 'MD022', 'MD032']
files: ^docs/.*\.md$

# Formateo de Python (opcional, pero útil para scripts)
- repo: https://github.com/psf/black
rev: 23.12.1
hooks:
- id: black
files: ^scripts/.*\.py$
2 changes: 1 addition & 1 deletion broken_links.json
Original file line number Diff line number Diff line change
Expand Up @@ -719,4 +719,4 @@
"link_type": "html"
}
]
}
}
1 change: 0 additions & 1 deletion docs/comunidad/alianzas.md
Original file line number Diff line number Diff line change
Expand Up @@ -203,4 +203,3 @@ Python CDMX trabaja en colaboración con diversas comunidades y empresas para cr
--8<-- "components/quick-navigation.md"

---

2 changes: 1 addition & 1 deletion docs/meetups/2023/202309-septiembre.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ title: "Utilizando Servicios AI de AWS y Metaprogramación en Python"
<p>SRE Engineer</p>
<p>SRE Engineer en Wizeline con experiencia en servicios cloud de AWS y desarrollo Python.</p>
<div class="speaker-links">



</div>
Expand Down
8 changes: 4 additions & 4 deletions docs/meetups/2023/202310-octubre.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ title: "¡De Jupyter a Web en Minutos!"
<p class="speaker-role">Python Developer</p>
<p class="speaker-bio">Desarrollador Python con experiencia en análisis de datos y desarrollo web.</p>
<div class="speaker-links">



</div>
</div>
</div>
Expand All @@ -63,7 +63,7 @@ title: "¡De Jupyter a Web en Minutos!"
<p>¿Tienes esa gran idea, pero no sabes cómo organizar tu ambiente virtual, tu código y todas las herramientas de desarrollo?</p>
<p>En esta charla exploraremos las mejores prácticas para configurar un entorno de desarrollo Python profesional:</p>
<ul>

</ul>
<p>
<i class="fas fa-info-circle"></i> Python permite transformar análisis de datos locales en servicios web interactivos de manera rápida y eficiente.
Expand Down
36 changes: 18 additions & 18 deletions docs/meetups/2023/202311-noviembre.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,34 +53,34 @@ title: "GitOps 101 / Python: La Forja de un Lenguaje"
<p>DevOps Engineer</p>
<p>Especialista en GitOps y Kubernetes con experiencia en despliegue de aplicaciones cloud native.</p>
<div class="speaker-links">



</div>
</div>
</div>
<div class="talk-description">
<p>En esta charla se mostrará los conceptos de GitOps y Cloud Native que nos permitirán conocer las estrategias de despliegue en Kubernetes.</p>

<div class="tech-stack">

<div>
<h5>🔄 GitOps</h5>
<p>Metodología de despliegue</p>
</div>

<div>
<h5>☸️ Kubernetes</h5>
<p>Orquestación de contenedores</p>
</div>

<div>
<h5>☁️ Cloud Native</h5>
<p>Aplicaciones nativas en la nube</p>
</div>

</div>

<p>GitOps proporciona una metodología robusta para el despliegue y gestión de aplicaciones en Kubernetes.</p>
</div>
</div>
Expand All @@ -99,34 +99,34 @@ title: "GitOps 101 / Python: La Forja de un Lenguaje"
<p>Python Developer</p>
<p>Desarrollador Python con experiencia en compiladores y construcción de lenguajes de programación.</p>
<div class="speaker-links">



</div>
</div>
</div>
<div class="talk-description">
<p>Explora la construcción de un lenguaje con Python, desde los pilares teóricos hasta un sorprendente guiño a la sintaxis financiera.</p>

<div class="tech-stack">

<div>
<h5>⚙️ Compilers</h5>
<p>Compiladores</p>
</div>

<div>
<h5>🔧 Language Design</h5>
<p>Diseño de lenguajes</p>
</div>

<div>
<h5>📝 Parsing</h5>
<p>Análisis sintáctico</p>
</div>

</div>

<p>Construir un lenguaje de programación es una excelente manera de entender los fundamentos de la computación.</p>
</div>
</div>
Expand Down
9 changes: 4 additions & 5 deletions docs/meetups/2024/202401-enero.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ title: "Ambientes virtuales con venv, pyenv y poetry"
<p class="speaker-role">SRE Engineer</p>
<p class="speaker-bio">SRE Engineer en Wizeline con experiencia en gestión de ambientes y desarrollo Python.</p>
<div class="speaker-links">



</div>
</div>
</div>
Expand All @@ -63,7 +63,7 @@ title: "Ambientes virtuales con venv, pyenv y poetry"
<p>¿Tienes esa gran idea, pero no sabes cómo organizar tu ambiente virtual, tu código y todas las herramientas de desarrollo?</p>
<p>En esta charla exploraremos las mejores prácticas para configurar un entorno de desarrollo Python profesional:</p>
<ul>

</ul>
<p>
<i class="fas fa-info-circle"></i> Los ambientes virtuales son fundamentales para el desarrollo Python profesional y la gestión de dependencias.
Expand Down Expand Up @@ -97,4 +97,3 @@ title: "Ambientes virtuales con venv, pyenv y poetry"
--8<-- "components/quick-navigation.md"

---

Loading