GitHub
Despliega repositorios públicos y privados, y vuelve a desplegar con cada push.
Conecta GitHub
- En un proyecto, haz clic en Add Service → GitHub.
- Haz clic en Connect GitHub, elige tu cuenta u organización y selecciona los repositorios que Zenavo puede leer. Al terminar vuelves al proyecto.
Solo los propietarios y administradores del equipo pueden conectar GitHub. Zenavo obtiene acceso de lectura al código y los metadatos de los repositorios que selecciones, y los eventos de push de esos repositorios. Para añadir más repositorios después, abre los ajustes de la GitHub App desde la lista de repositorios, o busca el repositorio que falta y elige Try installing the GitHub App again.
Añade un repositorio
- Elige un repositorio. Aparecen primero los que recibieron un push más reciente; escribe para buscar.
- Elige una rama o etiqueta.
- Configure Build Plan:
- Service Name: cualquier nombre de hasta 64 caracteres; puedes cambiarlo después. Su ID permanente se crea a partir de este nombre.
- Root Directory: en monorepos, la carpeta de este servicio, como
/apps/web. - Environment Variables: añade filas o haz clic en Edit Raw Variables para pegar líneas
KEY=value. - Advanced Settings: la ruta del Dockerfile, el puerto HTTP y Deploy automatically when this branch is pushed (activado por defecto).
- Build Plan Preview muestra cómo se compilará el servicio: tu Dockerfile, o el lenguaje y la versión que detectó zbpack, además del puerto. Haz clic en Configure para cambiar algo, o en Deploy.
Desplegar con cada push
Con los despliegues automáticos activados, cada push a la rama compila y despliega el proyecto. Los push a otras ramas se ignoran. Actívalo o desactívalo más tarde en la pestaña Settings del servicio → Auto deploy.
Watch paths
En un monorepo, un push a una aplicación no debería volver a desplegar las demás. En la pestaña Settings del servicio → Watch paths, escribe un patrón por línea; así un push solo despliega cuando cambia un archivo que coincide. Déjalo vacío para desplegar con cada push.
Los patrones usan la sintaxis de .gitignore y se leen desde la raíz del repositorio (no desde el directorio raíz), pero seleccionan los archivos que activan un despliegue:
| Patrón | Despliega cuando un push cambia |
|---|---|
apps/web/ | cualquier cosa dentro de apps/web |
/package.json | solo el package.json de la raíz del repositorio |
*.go | cualquier archivo Go, en cualquier carpeta |
packages/**/src | una carpeta src a cualquier profundidad dentro de packages |
!**/*.md | archivos Markdown no, aunque estén en una carpeta vigilada |
Como en .gitignore, un patrón con / al principio o en medio es relativo a la raíz del repositorio, y uno sin / coincide a cualquier profundidad. * y ? no salen de un nombre de carpeta, ** cruza carpetas, y decide el último patrón que coincide con un archivo. Cuentan los archivos añadidos, modificados y eliminados.
Zenavo lee los archivos cambiados del evento de push de GitHub. Si el evento no los incluye (por ejemplo, un push de más de 2.048 commits o una rama movida a un commit existente), el servicio se despliega igualmente. Volver a desplegar desde la consola o la CLI siempre despliega, sean cuales sean los watch paths.
Un push despliega el proyecto cuando cualquier servicio con despliegue automático que siga esa rama vigila un archivo cambiado.