Un entorno de pre-recepción para GitHub Enterprise Server es un entorno Linux chroot
. Dado que los ganchos de pre-recepción se ejecutan en todos los eventos de extracción, deberían ser rápidos y livianos. Normalmente, el entorno necesario para tales verificaciones será mínimo.
GitHub Enterprise Server brinda un entorno predeterminado que incluye estos paquetes: awk
, bash
, coreutils
, curl
, find
, gnupg
, grep
, jq
, sed
.
Si tu entorno no cumple con uno de los requisitos específicos, como respaldo para un idioma en particular, puedes crear y cargar tu propio entorno chroot
en Linux de 64 bits.
Crear un entorno de gancho de pre-recepción mediante Docker
Puedes usar una herramienta de administración de contenedores de Linux para crear un entorno de gancho de pre-recepción. Este ejemplo usa Alpine Linux y Docker.
-
Asegúrate de que Docker se instaló localmente.
-
Crea el archivo
Dockerfile.alpine-3.3
que contiene esta información:FROM gliderlabs/alpine:3.3 RUN apk add --no-cache git bash
-
Desde el directorio de trabajo que contiene
Dockerfile.dev
, crea una imagen:$ docker build -f Dockerfile.alpine-3.3 -t pre-receive.alpine-3.3 . > Sending build context to Docker daemon 12.29 kB > Step 1 : FROM gliderlabs/alpine:3.3 > ---> 8944964f99f4 > Step 2 : RUN apk add --no-cache git bash > ---> Using cache > ---> 0250ab3be9c5 > Successfully built 0250ab3be9c5
-
Crea un contenedor:
$ docker create --name pre-receive.alpine-3.3 pre-receive.alpine-3.3 /bin/true
-
Exporta el contenedor Docker a un archivo
tar
comprimido comogzip
:$ docker export pre-receive.alpine-3.3 | gzip > alpine-3.3.tar.gz
Este archivo
alpine-3.3.tar.gz
está listo para subirse al aparato GitHub Enterprise Server.
Crear un entorno de gancho de pre-recepción mediante chroot
-
Crea un entorno
chroot
en Linux. -
Crea un archivo
tar
comprimido comogzip
del directoriochroot
.$ cd /path/to/chroot $ tar -czf /path/to/pre-receive-environment.tar.gz .
Notas:
- No incluyas las rutas iniciales del directorio en los archivos dentro del tar, tales como
/path/to/chroot
. - La ruta
/bin/sh
debe existir y ser ejecutable como punto de entrada al ambiente chroot. - A diferencia de los chroots tradicionales, el ambiente de chroot para ganchos de pre-recepción no requiere el directorio
dev
.
- No incluyas las rutas iniciales del directorio en los archivos dentro del tar, tales como
Para obtener más información acerca de la creación de un entorno chroot, consulta "Chroot" desde Debian Wiki, "BasicChroot" desde Ubuntu Community Help Wiki o "Instalar Alpine Linux en un chroot" desde Alpine Linux Wiki.
Cargar un entorno de pre-recepción en GitHub Enterprise Server
-
En la esquina superior derecha de GitHub Enterprise Server, da clic en tu foto de perfil y luego en Configuración de empresa.
-
En la barra lateral de la cuenta de empresa, haz clic en Settings (Configuraciones).
-
Debajo de " Configuraciones", haz clic en Hooks (Ganchos).
-
Haz clic en Manage environments (Administrar entornos).
-
Haz clic en Add environment (Agregar entorno).
-
Escribe el nombre que desees en el campo Environment name (Nombre del entorno).
-
Escribe la URL del archivo
*.tar.gz
que contiene tu entorno. -
Haz clic en Add environment (Agregar entorno).
Cargar un entorno de pre-recepción mediante el shell administrativo
-
Carga un archivo
*.tar.gz
legible que contenga tu entorno a un host web y copia la URL o transfiere el archivo al aparato del GitHub Enterprise Server mediantescp
. Al usarscp
, es posible que necesites ajustar los permisos del archivo*.tar.gz
para que todos puedan leerlo. -
Conecta con el shell administrativo.
-
Usa el comando
ghe-hook-env-create
y escribe el nombre que desees para el entorno como primer argumento y la ruta local completa o la dirección URL de un archivo*.tar.gz
que contenga tu entorno como segundo argumento.admin@ghe-host:~$ ghe-hook-env-create AlpineTestEnv /home/admin/alpine-3.3.tar.gz > Pre-receive hook environment 'AlpineTestEnv' (2) has been created.