GitHub Action의 Context Data
GitHub Action은 CI/CD에 도움이 되는 여러 데이터를 생성하는데, 이를 Context Data 라 한다.
Context 데이터의 종류
Context 데이터의 종류는 다음과 같다.
Context명 | Type | 설명 |
github | object | Workflow 실행과 관련된 정보. 더 많은 정보를 원한다면 github context를 참고하라 |
env | object | Workflow, Job, Step과 관련된 환경 변수를 포함. 더 많은 정보를 원한다면 env context를 참고하라 |
job | object | 현재 실행 중인 Job에 대한 정보. 더 많은 정보를 원한다면 job context를 참고하라. |
jobs | object | 재사용 가능한 Workflow에만 적용되며, 재사용 가능한 Workflow의 output을 포함한다. 더 많은 정보를 원한다면 jobs context를 참고하라. |
steps | object | 현재 Job에서 실행 중인 Step에 대한 정보. 더 많은 정보를 원한다면 steps context를 참고하라. |
runner | object | 현재 Job을 실행하는 Virtual Machine(Runner)에 대한 정보. 더 많은 정보를 원한다면 runner context를 참고하라. |
secrets | object | Workflow 실행에 필요한 secret 정보 저장. name - value 쌍으로 저장된다. 보안이 필요한 정보들을 저장할 수 있다. 더 많은 정보를 원한다면 secrets context를 참고하라. |
strategy | object | 현재 Job에 대한 Matrix 실행 전략에 대한 정보. 더 많은 정보를 원한다면 strategy context.를 참고하라. |
matrix | object | 현재 Job에 적용되는 Matrix 프로퍼티에 대한 정보. 더 많은 정보를 원한다면 matrix context를 참고하라. |
needs | object | 현재 Job에 의존성이 있는 것으로 정의된 모든 Job에 대한 정보 포함. 더 많은 정보를 원한다면 needs context를 참고하라. |
inputs | object | 재사용 가능하거나 직접 조작해서 실행되는 Workflow에 대한 input 값 정보. 더 많은 정보를 원한다면 inputs context를 참고하라. |
이 중에서 중요한 것은 secrets이다. 보안이 필요한 정보는 secrets에 저장하고 불러와야 한다.
Context Data 확인해보기
Context Data를 출력하기 위해 간단한 Workflow를 하나 작성할 것이다.
name: Context Data
on: workflow_dispatch
jobs:
print-data:
runs-on: ubuntu-latest
steps:
- name: Print GitHub Context
run: echo "${{ toJSON(github) }}"
여기서 ${{ ... }} 는 식을 표현하는 방식이고 Kotlin의 식과 같아 함수를 실행하거나 변수를 출력할 수 있다. 내부의 toJSON은 객체를 JSON 형태로 읽기 편하게 출력해주는 함수이다.
이를 이제 Commit 한 후 GitHub Action에 올려보면 다음과 같이 나온다. github 변수는 Workflow 실행과 관련된 모든 정보를 포함하기 때문에 거의 500줄 정도의 output이 나오는 것을 볼 수 있다.

이 정보들은 이후에 만드는 Job들에서 유용하게 사용된다.
정리
Workflow는 다양한 Context Data를 참조할 수 있고 이러한 데이터들은 CI/CD 작업을 만드는데 사용된다.
참조
https://docs.github.com/en/actions/learn-github-actions/contexts
Contexts - GitHub Docs
About contexts Contexts are a way to access information about workflow runs, runner environments, jobs, and steps. Each context is an object that contains properties, which can be strings or other objects. Contexts, objects, and properties will vary signif
docs.github.com
GitHub Action의 Context Data
GitHub Action은 CI/CD에 도움이 되는 여러 데이터를 생성하는데, 이를 Context Data 라 한다.
Context 데이터의 종류
Context 데이터의 종류는 다음과 같다.
Context명 | Type | 설명 |
github | object | Workflow 실행과 관련된 정보. 더 많은 정보를 원한다면 github context를 참고하라 |
env | object | Workflow, Job, Step과 관련된 환경 변수를 포함. 더 많은 정보를 원한다면 env context를 참고하라 |
job | object | 현재 실행 중인 Job에 대한 정보. 더 많은 정보를 원한다면 job context를 참고하라. |
jobs | object | 재사용 가능한 Workflow에만 적용되며, 재사용 가능한 Workflow의 output을 포함한다. 더 많은 정보를 원한다면 jobs context를 참고하라. |
steps | object | 현재 Job에서 실행 중인 Step에 대한 정보. 더 많은 정보를 원한다면 steps context를 참고하라. |
runner | object | 현재 Job을 실행하는 Virtual Machine(Runner)에 대한 정보. 더 많은 정보를 원한다면 runner context를 참고하라. |
secrets | object | Workflow 실행에 필요한 secret 정보 저장. name - value 쌍으로 저장된다. 보안이 필요한 정보들을 저장할 수 있다. 더 많은 정보를 원한다면 secrets context를 참고하라. |
strategy | object | 현재 Job에 대한 Matrix 실행 전략에 대한 정보. 더 많은 정보를 원한다면 strategy context.를 참고하라. |
matrix | object | 현재 Job에 적용되는 Matrix 프로퍼티에 대한 정보. 더 많은 정보를 원한다면 matrix context를 참고하라. |
needs | object | 현재 Job에 의존성이 있는 것으로 정의된 모든 Job에 대한 정보 포함. 더 많은 정보를 원한다면 needs context를 참고하라. |
inputs | object | 재사용 가능하거나 직접 조작해서 실행되는 Workflow에 대한 input 값 정보. 더 많은 정보를 원한다면 inputs context를 참고하라. |
이 중에서 중요한 것은 secrets이다. 보안이 필요한 정보는 secrets에 저장하고 불러와야 한다.
Context Data 확인해보기
Context Data를 출력하기 위해 간단한 Workflow를 하나 작성할 것이다.
name: Context Data
on: workflow_dispatch
jobs:
print-data:
runs-on: ubuntu-latest
steps:
- name: Print GitHub Context
run: echo "${{ toJSON(github) }}"
여기서 ${{ ... }} 는 식을 표현하는 방식이고 Kotlin의 식과 같아 함수를 실행하거나 변수를 출력할 수 있다. 내부의 toJSON은 객체를 JSON 형태로 읽기 편하게 출력해주는 함수이다.
이를 이제 Commit 한 후 GitHub Action에 올려보면 다음과 같이 나온다. github 변수는 Workflow 실행과 관련된 모든 정보를 포함하기 때문에 거의 500줄 정도의 output이 나오는 것을 볼 수 있다.

이 정보들은 이후에 만드는 Job들에서 유용하게 사용된다.
정리
Workflow는 다양한 Context Data를 참조할 수 있고 이러한 데이터들은 CI/CD 작업을 만드는데 사용된다.
참조
https://docs.github.com/en/actions/learn-github-actions/contexts
Contexts - GitHub Docs
About contexts Contexts are a way to access information about workflow runs, runner environments, jobs, and steps. Each context is an object that contains properties, which can be strings or other objects. Contexts, objects, and properties will vary signif
docs.github.com