Note
Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server. Puede ver más información sobre la compatibilidad futura planeada en GitHub public roadmap.
Acerca de las acciones de configuración incluídas y el caché de la herramienta del ejecutor
Las GitHub Actions en GitHub Enterprise Server están diseñadas para funcionar como ambientes sin acceso completo a la internet. De manera predeterminada, los flujos de trabajo no pueden usar acciones de GitHub.com y GitHub Marketplace.
La mayoría de las acciones de creación de GitHub se agrupan automáticamente con GitHub Enterprise Server. Pero los ejecutores autohospedados sin acceso a Internet necesitan alguna configuración para poder usar las acciones actions/setup-LANGUAGE
incluidas, como setup-node
.
Las acciones actions/setup-LANGUAGE
habitualmente necesitan acceso a Internet para descargar los binarios de entorno necesarios en la caché de herramientas del ejecutor. Los ejecutores auto-hospedados sin acceso a internet no pueden descargar los binarios, así que debes poblar el caché de la herramienta manualmente en el ejecutor.
Puedes poblar el caché de la herramienta del ejecutor si ejecutas un flujo de trabajo de GitHub Actions en GitHub.com que cargue un caché de la herramienta del ejecutor hospedada en GitHub, la cual puedes transferir y extraer posteriormente en tu ejecutor auto-hospedado sin acceso a internet.
Note
Solo puedes utilizar una memoria caché de herramientas del ejecutor hospedado en GitHub para un ejecutor auto-hospedado que tenga un sistema operativo y una arquitectura idénticos. Por ejemplo, si usa un ejecutor hospedado en GitHub con ubuntu-22.04
para generar una caché de herramientas, el ejecutor autohospedado también debe ser una máquina con Ubuntu 22.04 de 64 bits. Para más información, sobre los ejecutores hospedados en GitHub, consulta Utilizar los ejecutores hospedados en GitHub.
Requisitos previos
- Determina qué ambientes de desarrollo necesitarán tus ejecutores auto-hospedados. En el ejemplo siguiente se muestra cómo rellenar la caché de herramientas para la acción
setup-node
, mediante las versiones 14 y 16 de Node.js. - Accede a un repositorio en GitHub.com que puedas utilizar para ejecutar un flujo de trabajo.
- Accede al sistema de archivos de tu ejecutor auto-hospedado para poblar la carpeta del caché de la herramienta.
Poblar el caché de la herramienta para un ejecutor auto-hospedado
-
En GitHub.com, navega a un repositorio que puedas utilizar para ejecutar un flujo de trabajo de GitHub Actions.
-
Cree un archivo de flujo de trabajo en la carpeta
.github/workflows
del repositorio que cargue un artefacto que contenga la caché de herramientas del ejecutor hospedado en GitHub.En el ejemplo siguiente se muestra un flujo de trabajo que carga la caché de herramientas para un entorno de Ubuntu 22.04 mediante la acción
setup-node
con las versiones 14 y 16 de Node.js.name: Upload Node.js 14 and 16 tool cache on: push jobs: upload_tool_cache: runs-on: ubuntu-22.04 steps: - name: Clear any existing tool cache run: | mv "${{ runner.tool_cache }}" "${{ runner.tool_cache }}.old" mkdir -p "${{ runner.tool_cache }}" - name: Setup Node 14 uses: actions/setup-node@v4 with: node-version: 14.x - name: Setup Node 16 uses: actions/setup-node@v4 with: node-version: 16.x - name: Archive tool cache run: | cd "${{ runner.tool_cache }}" tar -czf tool_cache.tar.gz * - name: Upload tool cache artifact uses: actions/upload-artifact@v3 with: path: ${{runner.tool_cache}}/tool_cache.tar.gz
-
Descarga el artefacto del caché de la herramienta desde la ejecución del flujo de trabajo. Para obtener instrucciones sobre cómo descargar artefactos, consulta Descargar los artefactos del flujo de trabajo.
-
Transfiere el artefacto del caché de la herramienta a tu ejecutor auto-hospedado y extráelo al directorio local del caché de la herramienta. El directorio de caché de herramientas predeterminado es
RUNNER_DIR/_work/_tool
. Si el ejecutor todavía no ha procesado ningún trabajo, es posible que tenga que crear los directorios_work/_tool
.Después de extraer el artefacto del caché de la herramienta que se cargó en el ejemplo anterior, deberás tener una estructura de directorio en tu ejecutor auto-hospedado que sea similar al siguiente ejemplo:
RUNNER_DIR ├── ... └── _work ├── ... └── _tool └── node ├── 14.21.3 │ └── ... └── 16.16.0 └── ...
Ahora el ejecutor autohospedado sin acceso a Internet debería poder usar la acción setup-node
. Si experimentas algún problema, asegúrate de que hayas poblado el caché de la herramienta correcta para tus flujos de trabajo. Por ejemplo, si tiene que usar la acción setup-python
, necesitará rellenar la caché de herramientas con el entorno de Python que quiera utilizar.