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.

Utilizar condiciones para controlar la ejecución de jobs

Prevenir que un job se ejecute a menos de que tus condiciones se cumplan.

Note

Actualmente los ejecutores hospedados por 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

Note

Si se omite un trabajo, se notificará su estado como "Success". No impedirá que una solicitud de incorporación de cambios se combine, incluso si es una comprobación necesaria.

Puede usar el condicional jobs.<job_id>.if para impedir que se ejecute una tarea si no se cumple una condición. Puedes usar cualquier contexto y expresión admitidos para crear un condicional. Para más información sobre los contextos que se admiten en esta clave, consulta "Acceso a información contextual sobre ejecuciones de flujo de trabajo".

Note

La condición jobs.<job_id>.if se evalúa antes de aplicar jobs.<job_id>.strategy.matrix.

Cuando se usan expresiones en un condicional if, se puede omitir la sintaxis de la expresión ${{ }} opcionalmente, porque GitHub Actions evalúa automáticamente el condicional if como una expresión. Sin embargo, esta excepción no se aplica en todas partes.

Debe usar siempre la sintaxis de expresión ${{ }} o escapar con '', ""o () cuando la expresión comienza con !, ya que ! es una notación reservada en formato YAML. Por ejemplo:

if: ${{ ! startsWith(github.ref, 'refs/tags/') }}

Para más información, consulta "Evaluación de expresiones en flujos de trabajo y acciones".

Ejemplo: Solo ejecutar un job para un repositorio específico

En este ejemplo se usa if para controlar cuándo se puede ejecutar el trabajo production-deploy. Solo se ejecutará si el repositorio se denomina octo-repo-prod y está dentro de la organización octo-org. De lo contrario, el trabajo se marcará como omitido.

YAML
name: example-workflow
on: [push]
jobs:
  production-deploy:
    if: github.repository == 'octo-org/octo-repo-prod'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '14'
      - run: npm install -g bats

En un trabajo omitido, debería ver "Esta comprobación se omitió".

Note

En algunas partes del flujo de trabajo no puedes usar variables de entorno. En su lugar, puede usar contextos para acceder al valor de una variable de entorno. Para más información, consulta Almacenamiento de información en variables.