Despliega desde GitHub Actions
Requisitos: un Workload que ya funcione (creado en la consola), el id de su instancia de servicio y el token de despliegue. Añade zaroz-deploy.sh a tu repositorio como deploy/zaroz-deploy.sh.
Secretos y variables
En Settings > Secrets and variables > Actions, crea estos en el entorno production (Settings > Environments):
| Nombre | Tipo | Valor |
|---|---|---|
ZAROZ_TOKEN | secreto | el token de despliegue zaroz_... |
ZAROZ_SERVICE | variable | el UUID de la instancia de servicio |
GHCR_PULL_TOKEN | secreto | solo para un paquete privado: un token clásico con read:packages, no el que sube |
Los secretos de entorno solo se entregan a los trabajos que apuntan a ese entorno, así que añade revisores obligatorios a production si una persona debe aprobar cada despliegue.
El flujo
Code
Cómo se comporta:
buildsubeghcr.io/<propietario>/<repo>:<primeros 12 caracteres del commit>. Cada commit tiene su propia etiqueta.deployejecuta el script, que hace fallar el trabajo si el despliegue falla y ya ha vuelto a poner la imagen anterior.concurrencyencola un segundo push en lugar de competir con el primero. Si no, Zaroz lo rechazaría con409mientras el primer despliegue tiene el servicio.- El log del trabajo imprime
deployment #N startedy después... is servingo elfailure_reason.
Revertir a mano
Vuelve a ejecutar el trabajo deploy de una ejecución anterior que funcionó: despliega de nuevo la imagen de esa ejecución. O desde una terminal: IMAGE=ghcr.io/acme/api:<etiqueta antigua> sh deploy/zaroz-deploy.sh.
Pull requests
No des a un pull request de un fork acceso a ZAROZ_TOKEN. El flujo de arriba solo corre en pushes a main, donde hay secretos disponibles. Para un entorno de previsualización, crea un segundo token limitado a un servicio de previsualización distinto.
