Skip to main content

Configurar el caché de la herramienta en ejecutores auto-hospedados sin acceso a internet

Para utilizar las acciones de actions/setup incluidas en los ejecutores autohospedados sin acceso a Internet, primero debes rellenar la caché de herramientas del ejecutor para tus flujos de trabajo.

Nota:

Actualmente los ejecutores hospedados por GitHub no se admiten en GitHub Enterprise Server.

Acerca de las acciones de configuración incluidas y el caché de la herramienta runner

GitHub Actions en GitHub Enterprise Server se diseñan para funcionar en ambientes sin acceso completo a 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 autohospedados sin acceso a internet no pueden descargar los archivos binarios, así que debes cargar la caché de herramientas en el ejecutor manualmente.

Puedes poblar el caché de herramientas del ejecutor ejecutando un flujo de trabajo de GitHub Actions en GitHub.com que suba el caché de herramientas de un ejecutor hospedado en GitHub como un artefacto. Luego, puedes transferirlo y extraerlo en tu ejecutor auto-hospedado sin conexión a internet.

Nota:

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 obtener más información sobre los ejecutores hospedados en GitHub, consulte 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

  1. En GitHub.com, navega a un repositorio que puedas utilizar para ejecutar un flujo de trabajo de GitHub Actions.

  2. 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
    
  3. 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.

  4. 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 necesita usar la acción setup-python, deberá rellenar la memoria caché de herramientas con el entorno de Python que desea usar.