Saltar al contenido

runnerhut

Respuestas

Respuestas directas a lo que los ingenieros preguntan sobre CI.

Facturación y costo21

¿Se me factura cuando falla un trabajo de GitHub Actions?Sí. Se le factura por los minutos consumidos hasta el momento del fallo, no por un resultado exitoso.¿Las GitHub Actions son gratuitas para código abierto?Sí, en ejecutores estándar alojados en GitHub para repositorios públicos, sin cargo por minutos.¿Las GitHub Actions son gratuitas para repositorios privados?No. Los repositorios privados obtienen una asignación mensual de minutos incluidos por plan y luego se facturan por minuto.¿Pago una tarifa de asiento para los corredores gestionados?En runnerhut, no. La facturación es por minuto de cómputo sin cargo por desarrollador.¿Pago por el tiempo de cola?No. La facturación comienza cuando se ejecuta el primer paso, no cuando el trabajo está en cola.¿Pago tanto por el corredor como por el constructor Docker remoto?Sí, pero al constructor se le factura solo por los segundos que está construyendo activamente.¿Cómo se factura un trabajo cancelado?Pagas por los minutos transcurridos antes de la cancelación, redondeados al incremento de facturación.¿Existe un incremento mínimo de facturación?runnerhut factura por segundo con un mínimo de un minuto por trabajo.¿Cuánto cuestan los corredores administrados de GitHub Actions?Los corredores runnerhut Linux x64 comienzan en $0.004 por minuto, aproximadamente la mitad del precio de lista de GitHub para el tamaño equivalente.¿Cuál es la talla de corredor más barata?El tamaño más pequeño que mantiene su trabajo en su ruta crítica: generalmente 2 o 4 vCPU para pruebas unitarias y de pelusa.¿Es arm64 más barato que x64?Sí. Los corredores runnerhut arm64 tienen un precio aproximadamente un 20 % inferior al tamaño equivalente x64.¿Es más barato correr con menos corredores y más grandes?Sólo si su carga de trabajo realmente es paralela. De lo contrario, pagará más por minuto por los núcleos que permanecen inactivos.¿Puedo establecer un límite de gasto?Sí. runnerhut admite límites presupuestarios estrictos por organización y por repositorio.¿Qué pasa cuando se agotan los créditos gratuitos?Los trabajos dejan de programarse hasta que agregas un método de pago o aumentas el límite.¿Cómo calculo mi factura de GitHub Actions?Multiplique los minutos mensuales por sistema operativo por la tarifa por minuto para ese sistema operativo y luego agregue almacenamiento para artefactos y caché.¿Cómo pronostico el gasto de los corredores?Tome los 90 minutos finales por flujo de trabajo, aplique el crecimiento de su tasa de fusión y agregue margen para cambios de matriz.¿Por qué mi factura de GitHub Actions es tan alta?Por lo general, una de cuatro cosas: minutos de macOS, explosión de la matriz, no cancelación de simultaneidad o corredores de gran tamaño.¿Los repositorios públicos pagan por los corredores administrados?En los ejecutores estándar alojados en GitHub, no. En proveedores administrados, incluido runnerhut, sí, pero hay programas de código abierto disponibles.¿Cuánto cuesta el almacenamiento en caché de Actions?GitHub incluye 10 GB por repositorio sin cargo y desaloja más allá de eso. El caché de runnerhut es ilimitado y está incluido.¿Cómo se factura el almacenamiento de instantáneas?Por gigabyte-mes para la instantánea retenida, separada de los minutos de proceso.¿Puedo ejecutar más trabajos simultáneos de los que permite mi plan GitHub?Sí. La simultaneidad de los corredores administrados la establece su proveedor de corredores, no los límites de corredores alojados de su plan GitHub.

Rendimiento10

¿Por qué las GitHub Actions son lentas?Más comúnmente: vCPU compartida, cachés inactivas, disco conectado a la red y tiempo en cola incluso antes de que comience el trabajo.¿Qué tan rápido comienzan los corredores después de que un trabajo está en cola?Los corredores runnerhut salen en unos tres segundos desde una piscina caliente.¿Necesito cambiar mi flujo de trabajo?No. Cambie la etiqueta de restos y deje todo lo demás como está.¿Cómo elijo una talla de corredor?Comience un tamaño por encima de su corredor actual, luego verifique la utilización de la CPU y deténgase cuando la curva se aplane.¿Por qué mis trabajos aparecen uno detrás del otro?Ha alcanzado un límite de simultaneidad, ya sea el de su plan, su grupo de ejecutores o un grupo de simultaneidad en el flujo de trabajo.¿Por qué mis pruebas de Python se ejecutan más lentamente en CI que localmente?pytest es serial de forma predeterminada y su computadora portátil tiene un rendimiento de un solo núcleo más rápido y un caché de sistema de archivos cálido.¿Por qué la instalación de npm es lenta en CI?node_modules escribe decenas de miles de archivos pequeños y el disco CI conectado a la red lo maneja mal.¿Por qué el demonio Gradle inicia cada ejecución?Cada trabajo de CI es una máquina nueva, por lo que no hay ningún demonio que reutilizar y, sin el caché de configuración, Gradle reevalúa toda la compilación.¿Por qué mi trabajo muestra una espera de E/S alta?La carga de trabajo está vinculada al disco; generalmente, instalación de dependencias, extracción de capa de contenedor o una base de datos en un contenedor de servicios.¿Cuántos trabajos se pueden ejecutar a la vez?Depende de su plan para los ejecutores alojados en GitHub y de su simultaneidad configurada para los ejecutores administrados.

Almacenamiento en caché38

¿Por qué Cargo reconstruye todo?Su clave de caché cambia en cada ejecución, o target/ no se almacena en caché en absoluto.¿Por qué la restauración de caché es lenta?GitHub acelera el ancho de banda de la caché, por lo que una caché de varios gigabytes puede tardar unos minutos en restaurarse.¿Cómo escribo una buena clave de caché?Hash exactamente los archivos que determinan el contenido almacenado en caché (generalmente el archivo de bloqueo) y nada más.¿Qué son las claves de restauración?Los prefijos ordenados se intentaron cuando falta la clave de caché exacta, por lo que aún se puede restaurar una coincidencia parcial.¿Por qué mi caché pierde cada ejecución?La clave incluye algo que cambia cada ejecución, comúnmente github.sha o una marca de tiempo.¿Cuánto duran los cachés?GitHub desaloja los cachés no utilizados durante 7 días, o antes si el repositorio supera los 10 GB.¿Cómo borro un caché?Elimínelo de la página de caché de acciones del repositorio o mediante la API REST o la CLI de gh.¿Los cachés se trasladan a través de sucursales?Una rama puede leer cachés de sí misma y de su rama base, pero no de ramas no relacionadas.¿Puedo compartir un caché entre flujos de trabajo?En ejecutores alojados en GitHub, solo dentro del mismo repositorio y alcance de sucursal. Los cachés de runnerhut se comparten entre los flujos de trabajo de la organización.¿Cuál es el límite de tamaño de caché de GitHub Actions?10 GB por repositorio, después de lo cual se desalojan las entradas utilizadas menos recientemente.¿Cómo almaceno en caché node_modules?Almacene en caché ~/.npm ingresado en package-lock.json, o restaure node_modules directamente si su instalación es determinista.¿Cómo almaceno en caché las dependencias de pip?Almacene en caché ~/.cache/pip ingresado en requisitos.txt, o almacene en caché todo el entorno virtual para obtener una mayor ganancia.¿Cómo almaceno en caché los módulos Go?Caché ~/go/pkg/mod y ~/.cache/go-build con clave en go.sum.¿Cómo almaceno en caché las dependencias de Cargo?Caché ~/.cargo/registry, ~/.cargo/git y target/ clave en Cargo.lock.¿Cómo almaceno en caché las dependencias de Maven?Caché ~/.m2/repository codificado en un hash de cada pom.xml.¿Cómo almaceno en caché las compilaciones de Gradle?Almacene en caché ~/.gradle/caches y ~/.gradle/wrapper, y habilite las cachés de compilación y configuración.¿Cómo almaceno en caché las gemas de Bundler?Proveedor/paquete de caché codificado en Gemfile.lock para que las extensiones nativas se compilen una vez.¿Cómo almaceno en caché las dependencias de Composer?Caché ~/.composer/cache con clave en compositor.lock.¿Cómo almaceno en caché los CocoaPods?Cache Pods/ y ~/Library/Caches/CocoaPods codificados en Podfile.lock.¿Cómo almaceno en caché las dependencias de Swift Package Manager?Caché .build y ~/Library/Caches/org.swift.swiftpm ingresados en Package.resolved.¿Cómo almaceno en caché Yarn Berry?Caché .yarn/cache y .yarn/install-state.gz codificados en Yarn.lock.¿Cómo almaceno en caché los entornos uv o Poetry?Caché ~/.cache/uv o ~/.cache/pypoetry ingresado en el archivo de bloqueo, más el directorio .venv.¿Cómo almaceno en caché los navegadores Playwright?Caché ~/.cache/ms-playwright ingresado en la versión de Playwright desde su archivo de bloqueo.¿Cómo almaceno en caché las capas de Docker?Utilice un generador remoto que mantenga el caché localmente o exporte a un registro con caché de destino y caché de origen.¿El almacenamiento en caché funciona dentro de un trabajo de contenedor?Sí, pero las rutas dentro del contenedor difieren de las rutas en el host, por lo que las claves de caché deben hacer referencia a las rutas del contenedor.¿Las cachés funcionan en todas las arquitecturas?No. Los artefactos compilados para x64 no son válidos en arm64, por lo que la arquitectura debe ser parte de la clave.¿Los cachés funcionan en los corredores de Windows?Sí, pero los separadores de rutas y la distinción entre mayúsculas y minúsculas difieren, por lo que las claves y las rutas necesitan un manejo específico de Windows.¿Cómo mantengo una caché de capa Docker entre solicitudes de extracción?Utilice un generador remoto persistente: su caché no tiene como ámbito una rama.¿Puedo almacenar en caché una imagen creada en lugar de reconstruirla?Sí: envíelo a un registro etiquetado por hash de contenido y extráigalo cuando las entradas no hayan cambiado.¿Puedo mantener una base de datos activa entre trabajos?No con los contenedores de servicios, que se destruyen con el trabajo. En su lugar, cargue un volcado de esquema previamente migrado.¿Puedo conservar Xcode DerivedData entre ejecuciones?Sí. Persist ~/Library/Developer/Xcode/DerivedData: es la mayor victoria para iOS CI.¿Los ejecutores de instantáneas reemplazan las acciones/caché?Ellos pueden. Una instantánea restaura todo el estado de la máquina, por lo que el paso de instalación desaparece en lugar de acelerarse.¿Qué se traslada a una instantánea?Todo el sistema de archivos en el momento de la instantánea: paquetes instalados, extensiones creadas, directorios de la cadena de herramientas y caché de páginas activas.¿Cómo invalido una instantánea?Introdúzcalo en el hash de su archivo de bloqueo para que un cambio de dependencia active automáticamente una reconstrucción.¿Cuánto duran las instantáneas?14 días de forma predeterminada en runnerhut, luego reconstruido en el siguiente uso.¿Puedo tomar una instantánea en una rama de función?Sí, y las instantáneas de las ramas están aisladas entre sí.¿Qué son los corredores de instantáneas?Ejecutadores que arrancan desde una imagen del sistema de archivos capturada después de que se instalaron sus dependencias, por lo que la instalación se omite por completo.¿Las instantáneas funcionan en los corredores de macOS?Sí, y son especialmente valiosos allí porque CocoaPods y DerivedData tardan en reconstruirse.

brazo6412

¿Pueden GitHub Actions ejecutar arm64?Sí. GitHub ofrece corredores arm64 en planes pagos, y los proveedores administrados, incluido runnerhut, los ofrecen en todos los planes.¿Puedo crear imágenes arm64 en un corredor x64?Sí, con QEMU, pero es entre 5 y 40 veces más lento que la construcción nativa.¿Qué cambia al pasar de x64 a arm64?Los módulos nativos, las ruedas Python y cualquier ensamblaje x86 necesitan compatibilidad con aarch64. La mayoría de las dependencias principales ahora lo tienen.¿Puedo ejecutar trabajos arm64 y x64 en el mismo flujo de trabajo?Sí. Utilice una matriz con una etiqueta de corredor diferente por arquitectura.¿Los corredores arm64 son compatibles con buildx?Sí, y en el hardware nativo arm64, buildx produce imágenes arm64 sin emulación.¿Puedo ejecutar compilaciones ARM de 32 bits en ejecutores arm64?Sí, mediante compilación cruzada con una cadena de herramientas armhf o con soporte multilib cuando esté disponible.¿Cómo ejecuto pruebas de integración arm64?Ejecute todo el trabajo en un ejecutor arm64 nativo, incluidos los contenedores de servicios, que deben tener imágenes arm64.¿Qué tamaños de corredores arm64 están disponibles?runnerhut ofrece de 2 a 64 ejecutores vCPU arm64 en Ubuntu 22.04 y 24.04.¿Los corredores de arm64 utilizan un directorio de trabajo diferente?No. Las rutas coinciden con las imágenes x64, por lo que los flujos de trabajo se portan sin cambios.¿Cómo construyo un binario Rust para múltiples objetivos?Utilice una matriz con un corredor nativo por objetivo, en lugar de realizar una compilación cruzada de todo en una máquina.¿Pueden GitHub Actions crear imágenes de múltiples arcos?Sí, ya sea con QEMU en un ejecutor o de forma nativa en ejecutores por arquitectura y combinados en una lista de manifiesto.¿QEMU o arm64 nativo es más rápido?Nativo, por un factor de 5 a 40 dependiendo de cuánto se compila la compilación.

macOS e iOS15

¿Los ejecutores de GitHub Actions son compatibles con macOS?Sí, tanto los proveedores administrados como alojados en GitHub ofrecen ejecutores de macOS en Apple Silicon.¿Puedo crear aplicaciones para iOS sin un ejecutor de Mac?No. Xcode solo se ejecuta en macOS, por lo que una compilación de iOS requiere un ejecutor de macOS.¿Xcode está preinstalado en los corredores de macOS?Sí. Las imágenes de runnerhut incluyen varias versiones de Xcode con herramientas de línea de comandos coincidentes.¿Cómo selecciono una versión de Xcode?Ejecute sudo xcode-select -s /Applications/Xcode_16.4.app antes de los pasos de compilación.¿Qué versiones de Xcode están disponibles?las imágenes de runnerhut macOS 15 llevan Xcode 16.0, 16.2 y 16.4; Las imágenes de macOS 14 llevan 15.2 y 15.4.¿Qué versiones de macOS son compatibles?runnerhut ofrece imágenes de macOS 14 y macOS 15 en Apple Silicon.¿GitHub Actions es compatible con Apple Silicon?Sí. Tanto los ejecutores de macOS administrados como alojados en GitHub ahora se ejecutan en Apple Silicon.¿Cuánto disco tienen los corredores de macOS?Los corredores macOS runnerhut proporcionan de 250 GB a 1 TB de NVMe según el tamaño.¿Qué tiempos de ejecución de simulador se incluyen en los corredores de macOS?iOS 17.5 a 18.4, además de los tiempos de ejecución de watchOS, tvOS y visionOS.¿Puedo usar Docker en corredores macOS?Sólo a través de una máquina virtual Linux, que es lenta. En su lugar, ejecute cargas de trabajo Docker en ejecutores de Linux.¿Puedo ejecutar corredores de macOS en la UE?Sí. runnerhut opera la capacidad de macOS en regiones de la UE para requisitos de residencia de datos.¿Puedo ejecutar compilaciones de Android e iOS en un solo flujo de trabajo?Sí, utilice una matriz con un ejecutor macOS para iOS y un ejecutor Linux para Android.¿Cómo acelero las compilaciones repetidas de Xcode?Persista DerivedData entre ejecuciones y fije la versión de Xcode.¿Cómo ejecuto pruebas de iOS en paralelo?Fragmento por objetivo de prueba o clase de prueba en varios simuladores en un ejecutor macOS grande.¿Cómo legalizo una aplicación macOS en CI?Utilice notarytool con una clave API de App Store Connect almacenada como secreto.

ventanas11

¿Pueden GitHub Actions ejecutar compilaciones de Windows?Sí. Los ejecutores de Windows Server están disponibles tanto en GitHub como en proveedores administrados.¿Puedo ejecutar compilaciones de Windows Server 2022?Sí. runnerhut ofrece imágenes de Windows Server 2022 y 2025.¿Qué versiones de Windows son compatibles?Windows Servidor 2022 y Windows Servidor 2025.¿Visual Studio está preinstalado?Sí. Las herramientas de compilación para 2022 y 2025 se entregan con las cargas de trabajo C++, escritorio .NET, ASP.NET y UWP.¿Cómo instalo componentes adicionales del SDK de Windows?Utilice vs_installer.exe y modifique con --add y el ID del componente.¿Por qué los corredores de Windows tardan más en iniciarse?Windows arranca más lentamente y Defender escanea todo lo que escribe la caja.¿Puedo ejecutar Docker en corredores de Windows?Sí, para contenedores de Windows. Los contenedores de Linux requieren virtualización anidada.¿Los corredores de Windows admiten la virtualización anidada?En runnerhut, sí en imágenes y tamaños de Windows Server 2025 que exponen Hyper-V.¿Cuál es el tamaño más pequeño del corredor de Windows?4 CPU virtuales. Los tamaños más pequeños gastan demasiado trabajo en gastos generales del sistema operativo para ser útiles.¿Puedo ejecutar pruebas en paralelo en Windows?Sí. dotnet test --parallel y MSBuild -m utilizan varios núcleos.¿Cómo ejecuto scripts de PowerShell?Configure shell: pwsh en el paso para PowerShell Core o shell: powershell para Windows PowerShell 5.1.

Docker17

¿Cómo reduzco el tiempo de extracción de imágenes?Utilice una caché de extracción de registro en la misma red que el ejecutor.¿Cómo restablezco la caché del constructor Docker?Ejecute docker buildx prune en el generador o vuelva a crear la instancia del generador.¿Los constructores remotos admiten compilaciones multiplataforma?Sí. runnerhut ejecuta constructores amd64 y arm64 separados y fusiona los resultados.¿Cómo envío una lista de manifiesto?Cree cada arquitectura mediante resumen y luego combínelas con las herramientas de creación de imágenes de Docker Buildx.¿Por qué la compilación de mi Docker es lenta?Caché de capa fría, caché transferido a través de la red o arm64 creado bajo emulación.¿Por qué la compilación de Docker se queda sin disco?Los ejecutores alojados en GitHub tienen alrededor de 14 GB libres, los cuales las imágenes grandes y su capa caché se agotan rápidamente.¿Por qué una actualización de la imagen base invalida todo?Cada capa después de FROM depende del resumen de la imagen base, por lo que una nueva base las invalida todas.¿Cuál es la diferencia entre caché desde y caché hacia?cache-from importa un caché de capa existente; cache-to exporta el caché producido por esta compilación.¿Necesito buildx?Para compilaciones multiplataforma, montajes de caché o constructores remotos, sí. Para una construcción simple de un solo arco, no.¿Qué es un constructor Docker remoto?Una instancia persistente de BuildKit a la que se adjunta su trabajo, que mantiene el caché de la capa en su propio disco.¿Cómo se factura a un constructor remoto?Por segundo de tiempo de construcción activo, por separado de los minutos del corredor.¿Pueden dos trabajos compartir un constructor?Sí. Los tramos de Matrix y los flujos de trabajo separados se pueden adjuntar al mismo constructor y compartir su caché.¿Cómo construyo y empujo en un solo paso?Utilice docker/build-push-action con push: true.¿Cómo uso Docker Bake?Defina objetivos en docker-bake.hcl y ejecute docker buildx bake en un paso.¿Cómo me autentico en un registro privado?Utilice docker/login-action con un token u OIDC para registros en la nube.¿Puedo ejecutar Docker Compose?Sí. Compose v2 está preinstalado; use Docker Compose Up -d --wait para que los pasos no aceleren el inicio.¿Puedo usar Podman en lugar de Docker?Sí. Podman está disponible y es en gran medida compatible con CLI con Docker.

Seguridad19

¿Los corredores de instantáneas son seguros para los repositorios públicos?Solo si las instantáneas se toman de ramas confiables y nunca de solicitudes de extracción de bifurcaciones.¿Cómo genero un SBOM?Habilite la salida sbom: true de buildx o ejecute syft en la imagen creada.¿Cómo adjunto la procedencia de la construcción?Utilice acciones/attest-build-procedencia, o procedencia de buildx: atestación verdadera.¿Cómo paso secretos a una compilación Docker?Utilice los secretos de compilación de BuildKit con --secret, nunca ARG o ENV.¿Son seguros los corredores de GitHub Actions?Los ejecutores administrados de buena reputación y alojados en GitHub son máquinas virtuales efímeras de un solo uso, que es el modelo de aislamiento correcto.¿Los corredores almacenan mi código fuente?Sólo durante la duración del trabajo. runnerhut destruye la VM y borra su disco cuando finaliza el trabajo.¿Puede la plataforma del corredor ver mis secretos?Los secretos se descifran en la memoria del corredor para ser utilizados, por lo que técnicamente cualquier plataforma de corredor podría hacerlo.¿Cómo configuro los permisos GITHUB_TOKEN?Agregue un bloque de permisos a nivel de flujo de trabajo o trabajo y otorgue solo los alcances necesarios.¿Cómo me autentico en AWS con OIDC?Configure GitHub como proveedor de OIDC en IAM y use aws-actions/configure-aws-credentials con una función.¿Los corredores administrados cambian mis permisos de GitHub?No. Los trabajos se ejecutan con el mismo GITHUB_TOKEN y los mismos permisos que los ejecutores alojados en GitHub.¿Puedo restringir qué repositorios usan mis corredores?Sí, con grupos de corredores dirigidos a organizaciones o repositorios específicos.¿Cumple runnerhut SOC 2?runnerhut mantiene SOC 2 Tipo 2, con el informe disponible bajo NDA.¿Dónde se almacenan mis datos de compilación?En la región que selecciones. La computación, el caché, los registros y las métricas están todos anclados a la misma región.¿Puedo conservar las compilaciones solo en la UE?Sí. Las implementaciones exclusivas de la UE vinculan la computación, la caché, los registros y las métricas a las regiones de la UE.¿Puedo restringir el tráfico saliente?Sí. Las políticas de salida de manera predeterminada niegan y permiten solo los destinos que usted enumera.¿Cómo audito los cambios de configuración del corredor?El registro de auditoría registra el actor, la marca de tiempo, la IP de origen y los valores antes/después de cada cambio de configuración.¿Dónde corren físicamente los corredores gestionados?En los centros de datos del proveedor o en su propia cuenta en la nube bajo BYOC.¿Qué sucede con los discos rodantes después de un trabajo?En runnerhut, se borran criptográficamente y la VM se destruye.¿Los corredores mantienen el estado entre trabajos?Los corredores efímeros no. Los ejecutores persistentes autohospedados sí lo hacen, lo que supone un riesgo de seguridad en los repositorios públicos.

Trae tu propia nube18

¿Pueden los corredores acceder a mi red privada?Sí, a través de corredores BYOC en su VPC o una red de malla como Tailscale.¿Los corredores pueden correr en mi propia cuenta en la nube?Sí. BYOC implementa corredores en su cuenta de AWS, GCP o Azure mientras el plano de control permanece administrado.¿Qué crea runnerhut en mi cuenta en la nube?Un grupo de escalado automático, un depósito de caché, un caché de extracción de registro, una función de IAM con ámbito y un punto final de VPC.¿Qué permisos de AWS necesita BYOC?Permisos para administrar su propio grupo de escalado automático, su depósito de caché y su función de instancia, nada más amplio.¿Puedo usar mi propia VPC?Sí. Usted proporciona la VPC y los ID de subred y los corredores se colocan allí.¿Pueden los corredores BYOC llegar a los servicios internos?Sí, esa es la razón principal para utilizar BYOC. Se encuentran dentro de su red con enrutamiento normal.¿Los corredores BYOC necesitan una puerta de enlace NAT?Necesitan Internet saliente para extraer imágenes y paquetes, lo que generalmente significa una puerta de enlace NAT.¿Pueden los corredores BYOC ejecutarse en una subred privada?Sí, y deberían hacerlo. El acceso saliente pasa por puntos finales NAT o VPC.¿Puedo asignar un rol de IAM a un corredor BYOC?Sí, a través de un perfil de instancia, de modo que los trabajos obtienen credenciales sin ningún secreto almacenado.¿BYOC funciona con IMDSv2?Sí, y IMDSv2 se aplica de forma predeterminada.¿Puedo ejecutar BYOC en varias regiones?Sí. Implemente el módulo por región y etiquete a los corredores por región.¿BYOC admite imágenes personalizadas?Sí. Proporcione su propia AMI o imagen de máquina con sus herramientas integradas.¿BYOC es compatible con Windows?Sí en AWS y Azure. El soporte de GCP para Windows es más limitado.¿BYOC admite SSD local de GCP?Sí, en familias de máquinas que lo ofrezcan.¿Cómo funciona la facturación BYOC?Usted le paga a su proveedor de nube por la computación y la red, y a runnerhut una tarifa reducida por el plano de control.¿Cómo etiqueto recursos BYOC?Establecer etiquetas de asignación de costos en el módulo Terraform; se propagan a cada recurso creado.¿Cómo elimino una pila BYOC?Drene los corredores, luego terraforme y destruya el módulo.¿Puedo controlar la salida de los corredores BYOC?Sí, con grupos de seguridad, NACL y política de salida de runnerhut juntos.

Flujos de trabajo30

¿A cuántos trabajos puede desplegarse una matriz?GitHub limita una única matriz a 256 trabajos por ejecución de flujo de trabajo.¿Cómo reproduzco una falla de CI localmente?Haga coincidir la imagen del corredor, luego SSH en un corredor en vivo si la falla solo aparece en CI.¿Puedo acceder por SSH a un corredor?Sí. runnerhut admite la apertura de una sesión de depuración en un trabajo en ejecución con una clave SSH autorizada.¿Puedo combinar ejecutores administrados y alojados en GitHub?Sí. Las ejecuciones son por trabajo, por lo que diferentes trabajos en un flujo de trabajo pueden utilizar diferentes proveedores.¿Cómo cambio el corredor?Edite el valor de ejecución continua para el trabajo. No es necesario cambiar nada más.¿Cómo ejecuto un trabajo sólo cuando cambian los archivos?Utilice rutas o rutas ignoradas en el disparador, o una acción de detección de cambios para un control más preciso.¿Cómo ejecuto un flujo de trabajo manualmente?Agregue un activador de flujo de trabajo_dispatch, opcionalmente con entradas escritas.¿Cómo ejecuto trabajos según un cronograma?Utilice el activador de programación con sintaxis cron, en UTC.¿Cómo cancelo ejecuciones reemplazadas?Establezca un grupo de simultaneidad ingresado en la referencia con cancelación en curso: verdadero.¿Cómo limito un flujo de trabajo a una ejecución a la vez?Utilice un nombre de grupo de simultaneidad fijo con cancelación en curso: falso.¿Qué sucede cuando dos flujos de trabajo comparten un grupo de simultaneidad?Se serializan: el segundo espera o cancela al primero dependiendo de la cancelación en curso.¿Cómo configuro un tiempo de espera para el trabajo?Agregue minutos de tiempo de espera al trabajo. El valor predeterminado es seis horas.¿Cómo reintento un paso fallido?Utilice una acción de reintento o envuelva el comando en un bucle de reintento del shell.¿Cómo reutilizo un flujo de trabajo en todos los repositorios?Publique un flujo de trabajo reutilizable y llámelo con flujo de trabajo_call.¿Cómo escribo una acción compuesta?Cree action.yml con run.using: compuesto y una lista de pasos.¿Cómo uso la inclusión y exclusión de matrices?incluir combinaciones que añaden o amplían; excluir los elimina del producto generado.¿Cómo me salto CI en una confirmación?Agregue [skip ci] al mensaje de confirmación.¿Cómo escribo un resumen de trabajo?Agregue Markdown a $GITHUB_STEP_SUMMARY.¿Cómo ejecuto una base de datos en CI?Declarelo como un contenedor de servicios con una verificación de estado.¿Cómo publico un paquete?Utilice la publicación confiable de OIDC cuando el registro la admita; de lo contrario, un token con ámbito en un secreto de entorno.¿Cómo comparto datos entre trabajos?Cargue un artefacto en un trabajo y descárguelo en el siguiente, o utilice resultados de trabajo para valores pequeños.¿Cómo detengo las implementaciones de bloqueo de un flujo de trabajo lento?Divida los controles requeridos de los de asesoramiento y marque solo los trabajos rápidos y confiables según sea necesario.¿Cómo ejecuto pruebas del navegador sin cabeza?Utilice la bandera sin cabeza para su corredor o xvfb-run para herramientas que requieren una pantalla.¿Cómo realizo las pruebas del detector de carreras Go?Ejecutar ir prueba -carrera. Espere una ejecución aproximadamente entre 2 y 10 veces más lenta y un mayor uso de memoria.¿Cuál es la diferencia entre un trabajo y un paso?Un trabajo se ejecuta en un corredor y contiene pasos; Los pasos se ejecutan secuencialmente en el mismo espacio de trabajo.¿Cuál es la diferencia entre los corredores alojados en GitHub y los autohospedados?Los alojados en GitHub son administrados, efímeros y facturados por minuto. Los servicios autohospedados son suyos para operarlos en su hardware.¿Qué sistemas operativos se pueden ejecutar GitHub Actions?Linux, Windows y macOS, en x64 y arm64 según proveedor.¿Cuánto tiempo se conservan los artefactos?90 días de forma predeterminada, configurable por repositorio o por carga hasta un día.¿Cómo depuro un trabajo fallido?Habilite el registro de depuración de pasos, agregue un resumen del trabajo o abra una sesión SSH en el ejecutor.¿Cómo ejecuto un trabajo solo en solicitudes de extracción?Utilice el disparador pull_request y una condición if para un control más preciso, como omitir borradores.

Observabilidad19

¿Cómo veo el costo por flujo de trabajo?El panel de runnerhut desglosa el gasto por flujo de trabajo, trabajo, etiqueta y repositorio.¿Cómo veo la etiqueta de costo por corredor?Filtre el panel de uso por etiqueta para ver los minutos y el gasto por tipo de corredor.¿Cómo detecto un corredor de tamaño insuficiente?CPU sostenida cerca del 100 %, presión de memoria o actividad de intercambio durante el trabajo.¿Cómo encuentro el paso más lento en un flujo de trabajo?Ordene los pasos por duración en la vista de ejecución o utilice la línea de tiempo de runnerhut que muestra la cola, la configuración y el tiempo de los pasos por separado.¿Cómo puedo saber qué flujo de trabajo se volvió más lento?Compare la duración de p95 por flujo de trabajo mes tras mes en el panel de análisis.¿Cómo mido la tasa de aciertos de la caché?El panel de runnerhut informa la tasa de aciertos, el tiempo de restauración y el tamaño por clave de caché.¿Cómo exporto datos de trabajo?Utilice la API runnerhut o la API REST GitHub Actions y escriba los resultados en CSV.¿Puede un agente de IA consultar mis métricas de CI?Sí, a través del servidor MCP de runnerhut, que expone compilaciones, duraciones, fallas y costos como herramientas.¿Pueden los agentes de IA desencadenar trabajos de CI?Sí, a través de la API o empujando ramas, como cualquier otro actor.¿Qué métricas expone la API?Tiempo de cola, percentiles de duración, tasa de aciertos de caché, utilización de CPU y memoria, y costo por trabajo, etiqueta y flujo de trabajo.¿Cómo veo el uso de CPU y memoria para un trabajo?runnerhut registra la utilización por trabajo automáticamente y la muestra en la página de ejecución.¿Puedo alertar sobre trabajos sin memoria?Sí. Alerta sobre muertes de OOM o sobre la utilización de la memoria que cruza un umbral.¿Cómo produzco un informe de salud semanal de CI?Programe un flujo de trabajo que consulte la API de métricas y publique la duración de p95, la tasa de aciertos de caché, la tasa de escamas y el gasto.¿Por qué mi trabajo fue eliminado con el código de salida 137?Se trata de una eliminación de OOM: el proceso excedió la memoria disponible.¿Por qué mi trabajo se quedó sin disco?Los corredores alojados en GitHub tienen aproximadamente 14 GB libres; Las capas Docker y node_modules se agotan tan rápido.¿Los corredores tienen discos grandes?Los corredores alojados en GitHub tienen alrededor de 14 GB libres. Los corredores runnerhut proporcionan de 150 GB a 2 TB de NVMe local.¿Los grupos de corredores limitan la concurrencia?Ellos pueden. Un grupo puede tener su propio límite de simultaneidad independientemente del límite de su cuenta.¿Qué límites de velocidad de la API de GitHub afectan a la CI?GITHUB_TOKEN está limitado por repositorio por hora; los flujos de trabajo que realizan muchas llamadas API pueden agotarlo.¿Por qué mis trabajos alcanzan tiempos de espera de red?Por lo general, una limitación de la tasa de registro, un cuello de botella en la puerta de enlace NAT o una política de salida que reduce silenciosamente el tráfico.