Uso de ejecutores autohospedados de nivel de repositorio
Es posible que no puedas crear un ejecutor autohospedado para un repositorio que es propiedad de la organización.
Los propietarios de la organización pueden elegir los repositorios que pueden crear ejecutores autohospedados en el nivel de repositorio. .
Para más información, consulta Inhabilitar o limitar GitHub Actions para tu organización.
Comprobar el estado de un servicio del ejecutor autoalojado
Un ejecutor autohospedado se puede ubicar en al repositorio, en la organización o en la configuración de cuenta empresarial en GitHub. Para administrar un ejecutor auto-hospedado, debes tener los siguientes permisos, dependiendo de donde se agregó éste:
- Repositorio de usuario: debe ser el propietario del repositorio.
- Organización: debe ser el propietario de una organización.
- Repositorio de la organización: debe ser el propietario de una organización o tener acceso de administrador al repositorio.
-
En el repositorio o la organización, ve a la página principal y haz clic en Settings.
-
En la barra lateral izquierda, haz clic en Acciones y, después, en Ejecutores.
-
En "Ejecutores", puedes ver una lista de los ejecutores registrados, incluyendo su nombre, etiquetas y estado.
El estado puede ser uno de los siguientes:
- Inactivo: el ejecutor está conectado a GitHub y está listo para ejecutar trabajos.
- Activo: el ejecutor ejecuta actualmente un trabajo.
- Sin conexión: el ejecutor no está conectado a GitHub. Esto puede deberse a que la máquina está sin conexión, que la aplicación de ejecutor autohospedado no está en ejecución en la máquina, o bien a que la aplicación de ejecutor autohospedado no se puede comunicar con GitHub.
Solucionar problemas de la conectividad de red
Verificar la conectividad de red del ejecutor auto-hospedado
Puedes usar el script config
de la aplicación de ejecutor autohospedado con el parámetro --check
para comprobar que un ejecutor autohospedado puede acceder a todos los servicios de red necesarios en GitHub.
Además de --check
, debe proporcionar dos argumentos al script:
--url
con la URL al repositorio, organización o empresa de GitHub. Por ejemplo,--url https://github.com/octo-org/octo-repo
.--pat
con el valor de un personal access token (classic), que debe tener el ámbitoworkflow
o un fine-grained personal access token con acceso de lectura y escritura de flujos de trabajo. Por ejemplo,--pat ghp_abcd1234
. Para más información, consulta Administración de tokens de acceso personal.
Por ejemplo:
./config.sh --check --url URL --pat ghp_abcd1234
El script prueba cada servicio y genera un valor PASS
o FAIL
para cada uno. Si tienes cualquier verificación fallida, puedes ver más detalles del problema en el archivo de bitácora de la verificación. Los archivos de registro se encuentra en el directorio _diag
donde haya instalado la aplicación de ejecutor y la ruta del archivo de registro para cada comprobación se muestra en la salida de consola del script.
Si tienes alguna verificación fallida, también debes verificar que tu máquina ejecutora auto-hospedada cumpla con todos los requisitos de comunicación. Para más información, consulta Acerca de los ejecutores autohospedados.
Inhabilitar la verificación de certificados TLS
De manera predeterminada, la aplicación de ejecutor autohospedado comprueba el certificado TLS para GitHub. Si encuentras problemas de red, deberás inhabilitar la verificación de certificados TLS para propósitos de pruebas.
Para deshabilitar la comprobación de la certificación TLS en la aplicación de ejecutor autohospedado, establezca la variable de entorno GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY
en 1
antes de configurar y ejecutar la aplicación de ejecutor autohospedado.
export GITHUB_ACTIONS_RUNNER_TLS_NO_VERIFY=1
./config.sh --url https://github.com/YOUR-ORG/YOUR-REPO --token
./run.sh
Warning
No se recomienda inhabilitar la comprobación TLS, ya que TLS proporciona privacidad e integridad de datos entre la aplicación de ejecutor autohospedado y GitHub. Te recomendamos instalar el certificado GitHub en el almacén de certificados del sistema operativo para tu ejecutor auto-hospedado. Para encontrar instrucciones sobre cómo instalar el certificado GitHub, verifícalo con el proveedor del sistema operativo.
Revisar los archivos de bitácora de la aplicación del ejecutor auto-hospedado
Puedes supervisar el estado de la aplicación del ejecutor autohospedado y de sus actividades. Los archivos de registro se conservan en el directorio _diag
donde ha instalado la aplicación de ejecutor y cada vez que se inicia la aplicación se genera un registro nuevo. El nombre de archivo comienza con Runner_
, seguido de una marca de tiempo UTC de cuando se inició la aplicación.
Warning
Los archivos de registro de aplicaciones del ejecutor para ejecutores efímeros deben reenviarse y conservarse externamente para solucionar problemas y realizar diagnósticos. Para obtener más información sobre los ejecutores efímeros y los autohospedadosde escalado automático, consulta Autoescalar con ejecutores auto-hospedados.
Para obtener registros detallados sobre las ejecuciones de trabajos de flujo de trabajo, consulte la sección siguiente que describe los archivos Worker_
.
Revisar el archivo de bitácora de un job
La aplicación del ejecutor auto-hospedado crea un archivo de bitácora detallado para cada job que procesa. Estos archivos se almacenan en el directorio _diag
donde ha instalado la aplicación de ejecutor y el nombre de archivo comienza por Worker_
.
Uso de launchd
para comprobar el servicio de la aplicación de ejecutor autohospedado
Para los ejecutores autohospedados basados en macOS que ejecutan la aplicación como un servicio, puedes usar launchctl
a fin de supervisar su actividad en tiempo real. El servicio predeterminado basado en launchd usa la siguiente convención de nomenclatura: actions.runner.<org>-<repo>.<runnerName>
. Este nombre se trunca si supera los 80 caracteres, por lo que la manera preferida de buscar el nombre del servicio consiste en comprobar el archivo .service en el directorio del ejecutor:
% cat ~/actions-runner/.service
/Users/exampleUsername/Library/LaunchAgents/actions.runner.octo-org-octo-repo.runner01.plist
El script svc.sh
usa launchctl
para comprobar si la aplicación está en ejecución. Por ejemplo:
$ ./svc.sh status
status actions.runner.example.runner01:
/Users/exampleUsername/Library/LaunchAgents/actions.runner.example.runner01.plist
Started:
379 0 actions.runner.example.runner01
La salida generada incluye el id. del proceso y el nombre del servicio launchd
de la aplicación.
Para ver la configuración de launchd
, puede encontrar el archivo de servicio aquí: /Users/exampleUsername/Library/LaunchAgents/actions.runner.<repoName>.<runnerName>.service
.
Si quieres personalizar el servicio de la aplicación del ejecutor auto-hospedado, no modifiques directamente este archivo. Sigue las instrucciones descritas en Configurar la aplicación del ejecutor autoalojado como un servicio.
supervisar el proceso de actualización automática
Te recomendamos que revises el proceso de actualización automático a menudo, ya que el ejecutor auto-hospedado no podrá procesar jobs si cae debajo de cierto umbral de versiones. La aplicación del ejecutor auto-hospedado se actualiza automáticamente, pero nota que este proceso no incluye ninguna actualización al sistema operativo ni a otro tipo de software; necesitarás administrar estas actualizaciones por separado.
Puede ver las actividades de actualización en los archivos de registro Runner_
. Por ejemplo:
[Feb 12 12:37:07 INFO SelfUpdater] An update is available.
Además, puede buscar más información en los archivos de registro SelfUpdate ubicados en el directorio _diag
donde ha instalado la aplicación de ejecutor.
Comprobación del motor de Docker instalado en el ejecutor
Si se produce el error siguiente en la compilación:
Error: Input required and not supplied: java-version
Comprueba qué motor de Docker está instalado en el ejecutor autohospedado. Para pasar las entradas de una acción al contenedor de Docker, el ejecutor usa variables de entorno que podrían contener guiones como parte de sus nombres. Es posible que la acción no pueda obtener las entradas si el motor de Docker no es un ejecutable binario, sino un contenedor de shell o un vínculo (por ejemplo, un motor de Docker instalado en Linux mediante snap
). Para solucionar este error, configura el ejecutor autohospedado de modo que use otro motor de Docker.
Para comprobar si el motor de Docker se instaló mediante snap
, usa el comando which
. En el ejemplo siguiente, el motor de Docker se instaló mediante snap
:
$ which docker
/snap/bin/docker