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.
Información general
Una ejecución de flujo de trabajo se compone de uno o varios jobs
, que se ejecutan en paralelo de forma predeterminada. Para ejecutar trabajos de manera secuencial, puede definir dependencias en otros trabajos mediante la palabra clave jobs.<job_id>.needs
.
Cada trabajo se ejecuta en un entorno de ejecutor especificado por runs-on
.
Puedes ejecutar una cantidad ilimitada de trabajos siempre que estés dentro de los límites de uso del flujo de trabajo. Consulta "Límites de uso, facturación y administración" para información sobre los límites de uso de los ejecutores hospedados en GitHub y "Acerca de los ejecutores autohospedados" para información sobre los límites de uso de los ejecutores autohospedados.
Si necesitas encontrar el identificador único de un job que se ejecuta en una ejecución de flujo de trabajo, puedes utilizar la API de GitHub Enterprise Server. Para obtener más información, vea «Terminales de REST para la API de Acciones de GitHub».
Configurar una ID para un job
Usa jobs.<job_id>
para asignar un identificador único al trabajo. La clave job_id
es una cadena y su valor es un mapa de los datos de configuración del trabajo. Debes reemplazar <job_id>
por una cadena que sea única para el objeto jobs
. <job_id>
debe empezar con una letra o _
, y solo puede contener caracteres alfanuméricos, -
o _
.
Ejemplo: Crear jobs
En este ejemplo, se han creado dos trabajos y sus valores job_id
son my_first_job
y my_second_job
.
jobs:
my_first_job:
name: My first job
my_second_job:
name: My second job
Configurar el nombre de un job
Usa jobs.<job_id>.name
a fin de establecer un nombre para el trabajo, que se muestra en la UI de GitHub.
Definir los jobs de prerrequisito
Use jobs.<job_id>.needs
para identificar los trabajos que se deben completar correctamente antes de que se ejecute este trabajo. Puede ser una cadena o matriz de cadenas. Si se omite un trabajo o este presenta un error, se omitirán todos los trabajos, a menos que utilicen una expresión condicional que haga que el trabajo continúe. Si una ejecución contiene una serie de trabajos que se necesitan entre sí, se produce un error en todos los trabajos de la cadena de dependencias o se omiten desde el punto de error en adelante. Si deseas que un trabajo se ejecute incluso si el trabajo del que depende no se realizó correctamente, usa la expresión condicional always()
en jobs.<job_id>.if
.
Ejemplo: Requerir jobs dependientes exitosos
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
En este ejemplo, job1
se debe completar correctamente antes de que comience job2
y job3
espera a que se completen job1
y job2
.
En este ejemplo, los trabajos se ejecutan de manera secuencial:
job1
job2
job3
Ejemplo: No requerir jobs dependientes exitosos
jobs:
job1:
job2:
needs: job1
job3:
if: ${{ always() }}
needs: [job1, job2]
En este ejemplo, job3
usa la expresión condicional always()
para que siempre se ejecute después de que se hayan completado job1
y job2
, independientemente de si se han realizado correctamente. Para obtener más información, vea «Expresiones».