Skip to main content

조건을 사용하여 작업 실행 제어

조건이 충족되지 않는 한 작업이 실행되지 않도록 합니다.

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

개요

참고: 건너뛴 작업은 해당 상태를 “성공”으로 보고합니다. 필요한 검사인 경우에도 끌어오기 요청이 병합되는 것을 방지하지 않습니다.

jobs.<job_id>.if 조건부를 사용하여 조건이 충족되지 않는 한, 작업이 실행되지 않도록 할 수 있습니다. 지원되는 컨텍스트 및 식을 사용하여 조건을 만들 수 있습니다. 이 키에서 지원되는 컨텍스트에 대한 자세한 내용은 "Accessing contextual information about workflow runs"을 참조하세요.

참고: jobs.<job_id>.if이 적용되기 전 jobs.<job_id>.strategy.matrix 상태로 평가합니다.

if 조건에서 식을 사용하는 경우, 선택에 따라 식 구문(${{ }})을 생략해도 됩니다. GitHub Actions에서 자동으로 if 조건을 식으로 평가하기 때문입니다. 그러나, 이 예외는 어디에나 적용되지는 않습니다.

${{ }} 식 구문을 사용하거나 !이 YAML 형식으로 예약된 표기법이므로 ! 식이 시작될 때 항상 '', "", () 이스케이프를 사용해야 합니다. 예시:

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

자세한 내용은 “Evaluate expressions in workflows and actions”을 참조하세요.

예: 특정 리포지토리에 대해서만 작업 실행

이 예제에서는 if를 사용하여 production-deploy 작업을 실행할 수 있는 시기를 제어합니다. 리포지토리 이름이 octo-repo-prod이고 octo-org 조직 내에 있는 경우에만 작업이 실행됩니다. 그렇지 않으면 작업이 ‘건너뛴 것’으로 표시됩니다.__

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

건너뛴 작업에서 "이 검사 건너뛰었다"가 표시됩니다.

참고: 워크플로의 일부 부분에서는 환경 변수를 사용할 수 없습니다. 조건문의 컨텍스트를 사용하여 환경 변수의 값에 액세스할 수 있습니다. 자세한 내용은 "Store information in variables"을(를) 참조하세요.