컨텍스트 정보
컨텍스트는 워크플로 실행, 변수, 실행기 환경, 작업 및 단계에 대한 정보에 액세스하는 방법입니다. 각 컨텍스트는 문자열 또는 다른 개체일 수 있는 속성을 포함하는 개체입니다.
컨텍스트, 개체 및 속성은 워크플로 실행 조건마다 크게 달라집니다. 예를 들어 matrix
컨텍스트는 행렬의 작업에 대해서만 채워집니다.
식 구문을 사용하여 컨텍스트에 액세스할 수 있습니다. 자세한 내용은 워크플로 및 작업에서 식 평가을(를) 참조하세요.
${{ <context> }}
경고
워크플로와 작업을 만들 때는 코드가 공격자의 신뢰할 수 없는 입력을 실행할 수 있는지 항상 고려해야 합니다. 특정 컨텍스트는 공격자가 자신의 악성 콘텐츠를 삽입할 수 있으므로 신뢰할 수 없는 입력으로 취급해야 합니다. 자세한 내용은 보안 사용 참조을(를) 참조하세요.
컨텍스트를 사용할 시기 결정
GitHub Actions에는 컨텍스트라는 변수 컬렉션과 기본 변수라는 유사한 변수 컬렉션이 포함되어 있습니다. 이러한 변수는 워크플로의 여러 지점에서 사용하기 위한 것입니다.
- 기본 환경 변수: 이러한 환경 변수는 작업을 실행하는 실행기에서만 존재합니다. 자세한 내용은 변수에 정보 저장을(를) 참조하세요.
- 컨텍스트: 기본 변수를 사용할 수 없는 경우를 비롯한 대부분의 컨텍스트를 워크플로의 모든 지점에서 사용할 수 있습니다. 예를 들어 작업이 실행을 위해 실행기로 라우팅되기 전에 식과 함께 컨텍스트를 사용하여 초기 처리를 수행할 수 있습니다. 이렇게 하면 조건부
if
키워드가 포함된 컨텍스트를 사용하여 단계를 실행할지 여부를 결정할 수 있습니다. 작업이 실행되면 작업을 실행하는 실행기에서 컨텍스트 변수를 검색할 수도 있습니다(예시:runner.os
). 워크플로 내에서 다양한 컨텍스트를 사용할 수 있는 위치에 대한 자세한 내용은 컨텍스트 참조을(를) 참조하세요.
다음 예시에서는 이러한 다양한 유형의 변수를 작업에서 함께 사용하는 방법을 보여 줍니다.
name: CI on: push jobs: prod-check: if: ${{ github.ref == 'refs/heads/main' }} runs-on: ubuntu-latest steps: - run: echo "Deploying to production server on branch $GITHUB_REF"
name: CI
on: push
jobs:
prod-check:
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
steps:
- run: echo "Deploying to production server on branch $GITHUB_REF"
이 예시에서 if
문은 github.ref
컨텍스트를 검사하여 현재 분기 이름을 확인합니다. 이름이 refs/heads/main
이면 후속 단계가 실행됩니다. if
확인은 GitHub Actions에 의해 처리되며, 결과가 true
이면 작업은 실행기로만 전송됩니다. 작업이 실행기로 전송되면 단계가 실행되고 실행기의 $GITHUB_REF
변수를 참조합니다.