Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2024-09-25. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Flujos de trabajo obligatorios

Puedes especificar qué flujos de trabajo se ejecutarán como comprobaciones de estado obligatorias en todos los repositorios o en repositorios seleccionados de la organización.

¿Quién puede utilizar esta característica?

Because GitHub no longer supports this feature, this article is only relevant if you are already using required workflows for GitHub Actions.

Note

GitHub ya no admite flujos de trabajo necesarios para GitHub Actions. Para requerir que los flujos de trabajo se completen antes de combinar, actualice GitHub Enterprise Server a la última versión y use conjuntos de reglas de repositorio en su lugar.

Para más información sobre cómo actualizar la instancia de GitHub Enterprise Server, consulte "Acerca de las mejoras a los nuevos lanzamientos".

Para más información sobre los conjuntos de reglas de repositorios, consulta «Reglas disponibles para conjuntos de reglas».

Información general

Puedes configurar un flujo de trabajo que se debe ejecutar en repositorios de una organización para todas las solicitudes de incorporación de cambios abiertas en cualquier rama de destino. Los flujos de trabajo obligatorios permiten implementar directivas de CI/CD para toda la organización que se aplican a los repositorios actuales y futuros. Los eventos predeterminados pull_request y pull_request_target desencadenan un flujo de trabajo obligatorio y aparece como una comprobación de estado requerida, lo que bloquea la capacidad de combinar la solicitud de cambios hasta que el flujo de trabajo obligatorio se realice correctamente.

Los flujos de trabajo obligatorios no son flujos de trabajo reutilizables. Otro flujo de trabajo puede llamar a los flujos de trabajo reutilizables. Un propietario de la organización aplica los flujos de trabajo obligatorios en los repositorios.

Prerrequisitos

Antes de configurar un flujo de trabajo obligatorios, debes tener en cuenta los siguientes requisitos previos:

  • GitHub Actions deben estar habilitados para un repositorio en la configuración de la organización para que se ejecuten los flujos de trabajo obligatorios. Una vez que se habilitan en un nivel de organización, los flujos de trabajo obligatorios se ejecutarán incluso cuando GitHub Actions se deshabilita en la configuración del repositorio. Para más información sobre cómo administrar GitHub Actions en los repositorios de la organización, consulta "Inhabilitar o limitar GitHub Actions para tu organización".
  • Los flujos de trabajo obligatorios están disponibles para las organizaciones y solo en repositorios en los que el plan de la organización admite las comprobaciones de estado obligatorias. Si no se admiten las comprobaciones de estado obligatorias, el flujo de trabajo se seguirá ejecutando, pero no será una comprobación obligatoria y no bloqueará la combinación. Para más información sobre la compatibilidad con las comprobaciones de estado obligatorias, consulta "Acerca de las ramas protegidas".
  • La rama predeterminada del repositorio debe coincidir con la configuración de rama predeterminada de la organización para que los flujos de trabajo obligatorios se ejecuten como comprobaciones de estado obligatorias. Si los nombres de rama predeterminados no coinciden, el flujo de trabajo se seguirá ejecutando, pero no será una comprobación obligatoria. Para más información sobre cómo administrar los nombres de ramas predeterminadas, consulta "Administrar el nombre de la rama predeterminada para los repositorios en tu organización" y "Cambiar la rama predeterminada".
  • Para que se ejecuten los flujos de trabajo obligatorios, el repositorio de origen de la solicitud de incorporación de cambios debe estar en la misma organización que el repositorio de destino. GitHub Enterprise Server generará el flujo de trabajo necesario de una rama, etiqueta o confirmación sha especificada del repositorio que contiene el flujo de trabajo.
  • Los secretos usados en un flujo de trabajo obligatorio se deben crear en el nivel de organización o en los repositorios de destino.
  • Los secretos del repositorio de origen no se capturarán cuando se ejecute un flujo de trabajo en el repositorio de destino.
  • Cuando se ejecuta un flujo de trabajo como obligatorio, este ignorará todos los filtros de la sección on:, por ejemplo, branches, branches-ignore, paths y types, entre otros. El flujo de trabajo obligatorio solo se ejecutará para los eventos predeterminados pull_request y pull_request_target. Para obtener más información sobre los tipos de actividad predeterminados, consulta "Eventos que desencadenan flujos de trabajo".
  • Los flujos de trabajo obligatorios no se desencadenan automáticamente en las solicitudes de cambios ya existentes, aunque aparecen como comprobaciones esperadas de forma automática. Para desencadenar flujos de trabajo obligatorios para una solicitud de cambios ya existente, envía un nuevo cambio a esa solicitud.

Restricciones y comportamientos para el repositorio de origen

Debes tener en cuenta las siguientes restricciones y comportamientos para el repositorio de origen y el flujo de trabajo:

  • Los flujos de trabajo obligatorios se pueden almacenar en cualquier carpeta del repositorio y no están restringidos a la carpeta .github/workflows, como los flujos de trabajo normales. Si un flujo de trabajo obligatorio llama a un flujo de trabajo reutilizable, el flujo de trabajo reutilizable debe almacenarse en la carpeta .github/workflows. Al llamar a un flujo de trabajo reutilizable, un flujo de trabajo obligatorio debe usar la ruta completa y la referencia al flujo de trabajo reutilizable. Por ejemplo, {owner}/{repo}/.github/workflows/{filename}@{ref}.

  • Si el flujo de trabajo obligatorio está incluido en un repositorio privadoor internal , debes asegurarte de que otros repositorios de la organización pueden acceder a los flujos de trabajo dentro del repositorio. Para más información, consulta "Administrar los ajustes de las GitHub Actions de un repositorio" y "Administrar los ajustes de las GitHub Actions de un repositorio."

  • Los flujos de trabajo almacenados en un repositorio público se pueden configurar como flujos de trabajo obligatorios para cualquier repositorio de la organización. Los flujos de trabajo almacenados en un repositorio privado solo se pueden configurar como flujos de trabajo obligatorios para otros repositorios privados de la organización. Los flujos de trabajo almacenados en repositorios internos se pueden configurar según sea necesario para los repositorios internos y privados de la organización.

  • CodeQL no se admiten en los flujos de trabajo necesarios porque CodeQL requiere configuración en el nivel de repositorio. Para información sobre la configuración del examen de código, consulta "Establecimiento de la configuración avanzada para el examen del código".

  • Puede hacer referencia a los flujos de trabajo necesarios mediante cualquier rama, etiqueta o confirmación SHA del repositorio que contenga el archivo de flujo de trabajo.

Restricciones y comportamientos para el repositorio de destino

Debes tener en cuenta las siguientes restricciones y comportamientos para los repositorios de destino:

  • Al configurar un flujo de trabajo necesario para ejecutarse en todos o algunos repositorios, la visibilidad del repositorio que contiene el flujo de trabajo necesario afectará a los repositorios de la organización en los que se ejecuta el flujo de trabajo. Los flujos de trabajo necesarios almacenados en repositorios públicos se ejecutarán en todos los repositorios. Los flujos de trabajo necesarios almacenados en repositorios privados solo se ejecutarán en otros repositorios privados. Los flujos de trabajo necesarios almacenados en repositorios internos se ejecutarán en repositorios internos y privados.
  • Los flujos de trabajo necesarios no se pueden configurar para ejecutarse en el repositorio en el que se crea el flujo de trabajo. Debes considerar la posibilidad de crear un repositorio independiente para almacenar los flujos de trabajo necesarios.
  • Al configurar un flujo de trabajo necesario para ejecutarse en todos los repositorios o seleccionados, los flujos de trabajo necesarios no se ejecutarán en repositorios en los que las acciones estén deshabilitadas en la configuración de la organización.

Visualización de ejecuciones de flujo de trabajo para flujos de trabajo obligatorios

Después de que un flujo de trabajo obligatorio se haya ejecutado al menos una vez en un repositorio, puedes ver sus ejecuciones de flujo de trabajo en la pestaña "Acciones" de ese repositorio. Para realizar cambios en los flujos de trabajo configurados según sea necesario en una organización, debes ponerte en contacto con un propietario de la organización. Para realizar cambios en un flujo de trabajo obligatorio, cualquiera con permisos de escritura en el repositorio que contiene el flujo de trabajo obligatorio puede realizar cambios en él.

  1. En GitHub, navegue hasta la página principal del repositorio.

  2. En el nombre del repositorio, haz clic en Acciones.

    Captura de pantalla de las pestañas del repositorio "github/docs". La pestaña "Proyectos" aparece resaltada con un contorno naranja.

  3. En la barra lateral de la izquierda, puedes ver las ejecuciones de flujo de trabajo para los flujos de trabajo obligatorios en "Flujos de trabajo obligatorios".

    Captura de pantalla de la barra lateral en la página "Acciones". Una subsección, etiquetada como "Flujos de trabajo necesarios", contiene una entrada denominada "Probar flujo de trabajo necesario" y se destaca en naranja oscuro.

Adición de un flujo de trabajo obligatorio a una organización

Los propietarios de la organización pueden configurar flujos de trabajo obligatorios en su organización. Para más información, consulta Inhabilitar o limitar GitHub Actions para tu organización.