/start-11-5.es
Lesson command
$ npx -y skills add minicoohei/ai-agent-camp --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/start-11-5.es
Context preview
What this command does when you run it.
Lesson command
Command definition
start-11-5.es.mddescription: "Lesson command"
chapter: "courses/aiagent/lesson03-core/module11-github-actions"
duration: "~25 min"
prerequisites: ["start-11-1"]
level: "intermediate"
tags: ["github-actions", "deploy", "artifact", "release", "vercel", "github-pages"]
nonInteractiveMode: deferred
๐ Lesson 11-5: Despliegue y generacion de archivos con GitHub Actions
๐ Lo que hara en esta sesion
**Leccion 11-5: Despliegue y generacion de archivos con GitHub Actions**!
| Elemento | Contenido | |------|------| | Objetivo | Generar artefactos de compilacion, desplegar en GitHub Pages / Vercel y generar notas de release automaticamente con GitHub Actions | | Duracion | ~25 min | | Habilidades utilizadas | GitHub Actions, GitHub Pages, Vercel CLI, gh CLI | | Requisitos previos | Leccion 11-1 completada (comprension basica de flujos de trabajo) |
**Flujo de la sesion:** 1. Script de generacion de artefactos de compilacion 2. Subida y almacenamiento como artifact 3. Despliegue en GitHub Pages 4. Despliegue automatico en Vercel 5. Generacion automatica de notas de release
Al final de esta sesion, tendra construido un pipeline automatizado de compilacion โ despliegue โ release.
> **๐ก Consejo**: Si la respuesta de la IA se detiene a mitad de camino, escriba "por favor continue" o "siga adelante" para reanudar.
---
๐ฏ Verificacion de preparacion
**Configuracion de AskQuestion:**
{
"title": "๐ฏ Verificacion previa a la sesion",
"questions": [{
"id": "readiness",
"prompt": "Esta listo/a?",
"options": [
{"id": "ready", "label": "Listo! Comencemos"},
{"id": "check_prereq", "label": "Verificar requisitos previos"},
{"id": "different_lesson", "label": "Ir a otra leccion"}
]
}]
}(ready โ Ir al Step 1) (check_prereq โ Verificar que la Leccion 11-1 esta completada) (different_lesson โ Mostrar lista de modulos)
---
๐ Step 1: Generacion de artefactos de compilacion
{
"title": "๐ Step 1: Generacion de artefactos",
"questions": [{
"id": "step_action",
"prompt": "Crearemos un paso que genera archivos estaticos con un script Python / Node.",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Revisar los tipos de artefactos de compilacion"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion (ejemplo)**:
Crear `tools/build_site.py` (generador de sitio estatico simple):
#!/usr/bin/env python3
"""Generador de sitio estatico simple"""
import os
import json
from datetime import datetime
def build():
os.makedirs("dist", exist_ok=True)
# Generar index.html
html = f"""<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>AI Agent Camp โ Artefacto de compilacion</title>
<style>
body {{ font-family: sans-serif; max-width: 800px; margin: 2rem auto; padding: 0 1rem; }}
.meta {{ color: #666; font-size: 0.9rem; }}
</style>
</head>
<body>
<h1>AI Agent Camp</h1>
<p class="meta">Fecha de compilacion: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}</p>
<p>Pagina generada automaticamente con GitHub Actions.</p>
</body>
</html>"""
with open("dist/index.html", "w") as f:
f.write(html)
# Generar build-info.json
info = {
"built_at": datetime.utcnow().isoformat(),
"commit": os.environ.get("GITHUB_SHA", "local"),
"ref": os.environ.get("GITHUB_REF", "local"),
}
with open("dist/build-info.json", "w") as f:
json.dump(info, f, indent=2)
print("Compilacion completada: artefactos generados en el directorio dist/")
if __name__ == "__main__":
build()python tools/build_site.py && ls -la dist/
**Resultado esperado**: Se generan `index.html` y `build-info.json` en el directorio `dist/`.
---
๐ Step 2: Subida y almacenamiento de artifacts
{
"title": "๐ Step 2: Gestion de artifacts",
"questions": [{
"id": "step_action",
"prompt": "Crearemos un flujo de trabajo que almacena los artefactos de compilacion como artifacts de GitHub Actions.",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Revisar el mecanismo de artifacts"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion (ejemplo)**:
Crear `.github/workflows/build-and-deploy.yml`:
name: Build and Deploy
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Build site
run: python tools/build_site.py
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: site-build-${{ github.run_number }}
path: dist/
retention-days: 30
- name: Build summary
run: |
echo "## Artefactos de compilacion" >> $GITHUB_STEP_SUMMARY
echo "| Archivo | Tamano |" >> $GITHUB_STEP_SUMMARY
echo "|---------|-------|" >> $GITHUB_STEP_SUMMARY
for f in dist/*; do
SIZE=$(wc -c < "$f" | tr -d ' ')
echo "| $(basename $f) | ${SIZE} bytes |" >> $GITHUB_STEP_SUMMARY
done**Puntos clave:**
- `actions/upload-artifact@v4` almacena los artefactos de compilacion
- `retention-days` especifica el periodo de retencion (por defecto 90 dias)
- `$GITHUB_STEP_SUMMARY` muestra la informacion de compilacion en el resumen del flujo de trabajo
**Resultado esperado**: Despues de la ejecucion del flujo de trabajo, aparece un enlace de descarga del artifact en el Summary de la pestana Actions.
---
๐ Step 3: Despliegue en GitHub Pages
{
"title": "๐ Step 3: Despliegue en GitHub Pages",
"questions": [{
"id": "step_action",
"prompt": "Desplegaremos los artefactos de compilacion en GitHub Pages.",
"options": [
{"Read more
description: "Lesson command" chapter: "courses/aiagent/lesson03-core/module11-github-actions" duration: "~25 min" prerequisites: ["start-11-1"] level: "intermediate" tags: ["github-actions", "deploy", "artifact", "release", "vercel", "github-pages"] nonInteractiveMode: deferred
๐ Lesson 11-5: Despliegue y generacion de archivos con GitHub Actions
๐ Lo que hara en esta sesion
**Leccion 11-5: Despliegue y generacion de archivos con GitHub Actions**!
| Elemento | Contenido | |------|------| | Objetivo | Generar artefactos de compilacion, desplegar en GitHub Pages / Vercel y generar notas de release automaticamente con GitHub Actions | | Duracion | ~25 min | | Habilidades utilizadas | GitHub Actions, GitHub Pages, Vercel CLI, gh CLI | | Requisitos previos | Leccion 11-1 completada (comprension basica de flujos de trabajo) |
**Flujo de la sesion:** 1. Script de generacion de artefactos de compilacion 2. Subida y almacenamiento como artifact 3. Despliegue en GitHub Pages 4. Despliegue automatico en Vercel 5. Generacion automatica de notas de release
Al final de esta sesion, tendra construido un pipeline automatizado de compilacion โ despliegue โ release.
> **๐ก Consejo**: Si la respuesta de la IA se detiene a mitad de camino, escriba "por favor continue" o "siga adelante" para reanudar.
---
๐ฏ Verificacion de preparacion
**Configuracion de AskQuestion:**
{
"title": "๐ฏ Verificacion previa a la sesion",
"questions": [{
"id": "readiness",
"prompt": "Esta listo/a?",
"options": [
{"id": "ready", "label": "Listo! Comencemos"},
{"id": "check_prereq", "label": "Verificar requisitos previos"},
{"id": "different_lesson", "label": "Ir a otra leccion"}
]
}]
}(ready โ Ir al Step 1) (check_prereq โ Verificar que la Leccion 11-1 esta completada) (different_lesson โ Mostrar lista de modulos)
---
๐ Step 1: Generacion de artefactos de compilacion
{
"title": "๐ Step 1: Generacion de artefactos",
"questions": [{
"id": "step_action",
"prompt": "Crearemos un paso que genera archivos estaticos con un script Python / Node.",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Revisar los tipos de artefactos de compilacion"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion (ejemplo)**:
Crear `tools/build_site.py` (generador de sitio estatico simple):
#!/usr/bin/env python3
"""Generador de sitio estatico simple"""
import os
import json
from datetime import datetime
def build():
os.makedirs("dist", exist_ok=True)
# Generar index.html
html = f"""<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>AI Agent Camp โ Artefacto de compilacion</title>
<style>
body {{ font-family: sans-serif; max-width: 800px; margin: 2rem auto; padding: 0 1rem; }}
.meta {{ color: #666; font-size: 0.9rem; }}
</style>
</head>
<body>
<h1>AI Agent Camp</h1>
<p class="meta">Fecha de compilacion: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}</p>
<p>Pagina generada automaticamente con GitHub Actions.</p>
</body>
</html>"""
with open("dist/index.html", "w") as f:
f.write(html)
# Generar build-info.json
info = {
"built_at": datetime.utcnow().isoformat(),
"commit": os.environ.get("GITHUB_SHA", "local"),
"ref": os.environ.get("GITHUB_REF", "local"),
}
with open("dist/build-info.json", "w") as f:
json.dump(info, f, indent=2)
print("Compilacion completada: artefactos generados en el directorio dist/")
if __name__ == "__main__":
build()python tools/build_site.py && ls -la dist/
**Resultado esperado**: Se generan `index.html` y `build-info.json` en el directorio `dist/`.
---
๐ Step 2: Subida y almacenamiento de artifacts
{
"title": "๐ Step 2: Gestion de artifacts",
"questions": [{
"id": "step_action",
"prompt": "Crearemos un flujo de trabajo que almacena los artefactos de compilacion como artifacts de GitHub Actions.",
"options": [
{"id": "practice", "label": "Continuar"},
{"id": "review", "label": "Revisar el mecanismo de artifacts"},
{"id": "skip", "label": "Omitir"}
]
}]
}**Indicaciones tras la seleccion (ejemplo)**:
Crear `.github/workflows/build-and-deploy.yml`:
name: Build and Deploy
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Build site
run: python tools/build_site.py
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: site-build-${{ github.run_number }}
path: dist/
retention-days: 30
- name: Build summary
run: |
echo "## Artefactos de compilacion" >> $GITHUB_STEP_SUMMARY
echo "| Archivo | Tamano |" >> $GITHUB_STEP_SUMMARY
echo "|---------|-------|" >> $GITHUB_STEP_SUMMARY
for f in dist/*; do
SIZE=$(wc -c < "$f" | tr -d ' ')
echo "| $(basename $f) | ${SIZE} bytes |" >> $GITHUB_STEP_SUMMARY
done**Puntos clave:**
- `actions/upload-artifact@v4` almacena los artefactos de compilacion
- `retention-days` especifica el periodo de retencion (por defecto 90 dias)
- `$GITHUB_STEP_SUMMARY` muestra la informacion de compilacion en el resumen del flujo de trabajo
**Resultado esperado**: Despues de la ejecucion del flujo de trabajo, aparece un enlace de descarga del artifact en el Summary de la pestana Actions.
---
๐ Step 3: Despliegue en GitHub Pages
{
"title": "๐ Step 3: Despliegue en GitHub Pages",
"questions": [{
"id": "step_action",
"prompt": "Desplegaremos los artefactos de compilacion en GitHub Pages.",
"options": [
{"AI Agent Training for Non-Engineers - Complete Guide to Claude Code / Cursor / Codex ### โ ๏ธ Before you clone Official repository (maintained by the authors): Running AI agents from this repo grants them shell, file-write, and external-API permissions on your
Other commands on ai-agent-camp.
- /check-setup.en
Top-level alias โ see lesson/check-setup.en.md for the full body.
Open command - /check-setup.es
Alias de nivel superior โ el cuerpo completo estรก en lesson/check-setup.es.md.
Open command - /check-setup
Top-level alias โ see lesson/check-setup.md for the full body.
Open command - /check-security.en
Lesson command
Open command - /check-security.es
Lesson command
Open command - /check-security
Lesson command
Open command

