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 que se incluyen en los ejecutores autohospedados sin acceso a Internet, primero debes rellenar la caché de la herramienta del ejecutor con tus flujos de trabajo.

Nota: Actualmente los ejecutores hospedados en 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.

Nota: Solo puede utilizar un caché de herramientas del ejecutor hospedado en GitHub para un ejecutor autohospedado 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

  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 tiene que usar la acción setup-python, necesitará rellenar la caché de herramientas con el entorno de Python que quiera utilizar.