CI/CD En astro, con GitHub Actions . Rutas y configuracion.
🔐 ¿Qué son los Secrets en GitHub Actions y por qué son importantes?
Cuando trabajamos en proyectos que requieren despliegues automatizados —como subir un sitio a AWS, S3 o CloudFront— es necesario usar claves privadas, accesos y configuraciones sensibles. GitHub Actions nos permite almacenar esta información de forma segura mediante Secrets, evitando que aparezcan en el código o en el repositorio.
Los Secrets funcionan como variables de entorno privadas que GitHub inyecta automáticamente en los flujos de CI/CD (como deploys a producción). Así, cualquier miembro del equipo puede enviar cambios desde su propia rama, pero sin conocer ni exponer las credenciales reales. GitHub se encarga de mantener esta información oculta y accesible solo para los workflows autorizados, reduciendo riesgos y mejorando la seguridad del proyecto
Dónde poner las variables en GitHub?
1. Repository Secrets (para todo el repo)
GitHub → Tu repositorio → Settings → Secrets and variables → Actions → Secrets
Ahí encontrarás:
- Repository secrets
- Botón "New repository secret"
Ahí pones:
- PUBLIC_STRAPI_URL
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
- S3_BUCKET_NAME
- CLOUDFRONT_DISTRIBUTION_ID
Y también los de staging:
- STAGING_STRAPI_URL
- STAGING_S3_BUCKET_NAME
- STAGING_CLOUDFRONT_DISTRIBUTION_ID
2. Repository Variables
GitHub → Tu repositorio → Settings → Secrets and variables → Actions → Variables
Variables = valores no sensibles como:
- NODE_ENV
- BUILD_ENV
- Versiones, flags, etc.
Environments (production y staging)
Tu CI/CD usa environments, por eso debes crear production y staging, cabe mencionar que cuando haces git push y el usuario tiene autorización hacia la rama main, este carga el env de github para el CD
GitHub → Tu repositorio → Settings → Environments
Luego:
- Click New environment
- Nombre: production
- Dentro entras a:
Settings → Environments → production → Environment secrets
Ahí agregas:
- PUBLIC_STRAPI_URL
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_REGION
- S3_BUCKET_NAME
- CLOUDFRONT_DISTRIBUTION_ID
Y lo mismo para staging:
Settings → Environments → staging → Environment secrets
- STAGING_STRAPI_URL
- STAGING_S3_BUCKET_NAME
- STAGING_CLOUDFRONT_DISTRIBUTION_ID
AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY
Estos NO se pueden ver si ya fueron creados.
Si no los tienes guardados, debes generar uno nuevo.
Ruta para crear Access Keys
AWS Console → IAM → Users → (tu usuario) → Security credentials → Access keys
Pasos:
- Entra a IAM
- Clic en Users
- Selecciona tu usuario (por ejemplo: miguel, admin, etc.)
- Ir a la pestaña Security credentials
- Bajar hasta Access keys
- Clic en Create access key
- Guarda:
- Access key ID
- Secret access key (solo se muestra una vez) ⚠ IMPORTANTE: si lo pierdes, tienes que generar uno nuevo.
AWS_REGION
La región está en la parte superior derecha de AWS.
AWS Console → Arriba a la derecha → Region selector
Ejemplos comunes:
- us-east-1
- us-west-2
- sa-east-1
También puedes ver la región del bucket en S3:
AWS Console → S3 → (tu bucket) → Properties → Bucket region
S3_BUCKET_NAME
Es el nombre del bucket donde subes tu sitio Astro.
- AWS Console → S3 → Buckets → (nombre del bucket)
Ejemplo:
- portfolio.miguel-anay.nom.pe
- staging.portfolio.miguel-anay.nom.pe
El nombre es literalmente el que aparece en la lista.
CLOUDFRONT_DISTRIBUTION_ID
Es un código como:
E2A3FSGHUAK123
Ruta para encontrarlo:
AWS Console → CloudFront → Distributions
En la tabla de distribuciones verás:
- ID (ese es el CLOUDFRONT_DISTRIBUTION_ID)
- Domain name
- Status
En Resumen.