Esta versión de GitHub Enterprise se discontinuó el 2021-09-23. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.

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 auto-hospedados sin acceso a internet, primero debes poblar el caché de la herramienta del ejecutor para tus flujos de trabajo.

Nota: GitHub Actions estuvo disponible para GitHub Enterprise Server 2.22 como un beta limitado. El beta terminó. GitHub Actions está ahora disponible habitualmente en GitHub Enterprise Server 3.0 o superior. Para obtener más información, consulta la sección de notas de lanzamiento para GitHub Enterprise Server 3.0.


Nota: Los ejecutores hospedados en GitHub no son compatibles con GitHub Enterprise Server actualmente. Puedes encontrar más información sobre el soporte que se tiene planeado en el futuro en el Itinerario público de GitHub.

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. Predeterminadamente, los flujos de trabajo no utilizan acciones de GitHub.com y GitHub Marketplace.

La mayoría de las acciones de autoría de GitHub se agrupan automáticamente con GitHub Enterprise Server. Sin embargo, los ejecutores auto-hospedados sin acceso a internet requieren que se les configure un poco antes de que puedan utilizar las acciones de actions/setup-LANGUAGE incluídas, tal como setup-node.

Las acciones de actions/setup-LANGUAGE habitualmente necesitan acceso a internet para descargar los binarios de ambiente requeridos en el caché de la herramienta 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 puedes utilizar un caché de la herramienta del ejecutor hospedado en GitHub para un ejecutor auto-hospedado que tenga un sistema operativo y arquitectura idénticos. Por ejemplo, si estás utilizando un ejecutor hospedado en GitHub con ubuntu-18.04 para generar un caché de la herramienta, tu ejecutor auto-hospedado también debe ser una máquina con Ubuntu 18.04 de 64 bits. Para obtener más información sobre los ejecutores hospedados en GitHub, consulta la sección "Ambientes virtuales para los ejecutores hospedados en GitHub".

Prerrequisitos

  • Determina qué ambientes de desarrollo necesitarán tus ejecutores auto-hospedados. El siguiente ejemplo demuestra cómo poblar el caché de la herramienta para la acción setup-node, utilizando las versiones 10 y 12 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. Crea un archivo de flujo de trabajo nuevo en la carpeta .github/workflows del repositorio, el cual cargue un artefacto que contenga el caché de la herramienta del ejecutor hospedado en GitHub.

    El siguiente ejemplo muestra un flujo de trabajo que carga el caché de la herramienta para un ambiente de Ubuntu 18.04 utilizando la acción setup-node con las versiones 10 y 12 de Node.js.

    name: Upload Node.js 10 and 12 tool cache
    on: push
    jobs:
      upload_tool_cache:
        runs-on: ubuntu-18.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 10
            uses: actions/setup-node@v2
            with:
              node-version: 10.x
          - name: Setup Node 12
            uses: actions/setup-node@v2
            with:
              node-version: 12.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@v2
            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 la secciòn "Descargar artefactos de los flujos 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 predeterminado del caché de la herramienta es RUNNER_DIR/_work/_tool. Si el ejecutor no ha procesado ningún job aún, podrías necesitar 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
                ├── 10.22.0
                │   └── ...
                └── 12.18.3
                    └── ...
    

Tu ejecutor auto-hospedado sin acceso a internet debería ahora poder utilizar 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 necesitas utilizar la acción setup-python, necesitarás poblar el caché de la herramienta con el ambiente de Python que quieras utilizar.