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.
Resumen
A workflow run is made up of one or more jobs
, which run in parallel by default. Para ejecutar trabajos de manera secuencial, puedes definir dependencias en otros trabajos utilizando la palabra clave jobs.<job_id>.needs
.
Cada job se ejecuta en un ambiente ejecutor que especifica runs-on
.
Puedes ejecutar una cantidad ilimitada de trabajos siempre que estés dentro de los límites de uso del flujo de trabajo. Para obtener más información, consulta las secciones "Límites de uso y facturación" para los ejecutores hospedados en GitHub y "Acerca de los ejecutores auto hospedados" para los límites de uso de los ejecutores auto-hospedados.
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, consulta la sección "Jobs de los Flujos de Trabajo".
Setting an ID for a job
Use jobs.<job_id>
to give your job a unique identifier. 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>
con una cadena que sea exclusiva del objeto jobs
. El <job_id>
debe comenzar con una letra o _
y debe contener solo caracteres alfanuméricos, -
, o _
.
Example: Creating jobs
En este ejemplo, se crearon dos jobs y sus valores de 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
Setting a name for a job
Use jobs.<job_id>.name
to a name for the job, which is displayed on GitHub.
Defining prerequisite jobs
Use jobs.<job_id>.needs
to identify any jobs that must complete successfully before this job will run. Puede ser una cadena o matriz de cadenas. Si un job falla, se saltarán todos los jobs que lo necesiten a menos de que éstos utilicen una expresión condicional que ocasione que el job continúe.
Example: Requiring successful dependent jobs
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
En este ejemplo, job1
debe completarse con éxito antes de que job2
comience, y job3
espera a quejob1
y job2
se completen.
En este ejemplo, los trabajos se ejecutan de manera secuencial:
job1
job2
job3
Example: Not requiring successful dependent jobs
jobs:
job1:
job2:
needs: job1
job3:
if: ${{ always() }}
needs: [job1, job2]
En este ejemplo, job3
utiliza la expresión condicional always()
para que siempre se ejecute después de que el job1
y el job2
se hayan completado, sin importar si tuvieron éxito o no. Para obtener más información, consulta la sección "Expresiones".