Jobs (작업)


GitHub Actions에서 작업(Job)이란 독립된 가상 머신(machine) 또는 컨테이너(container)에서 돌아가는 하나의 처리 단위를 의미한다. 하나의 워크플로우는 여러 개의 작업으로 구성되며 적어도 하나의 작업은 있어야 한다. (아니라면 실행할 작업이 없으니 워크플로우가 의미가 없다) 그리고 모든 작업은 기본적으로 동시에 실행되며 필요 시 작업 간에 의존 관계를 설정하여 작업이 실행되는 순서를 제어할 수도 있다.

작업은 워크플로우 YAML 파일 내에서 jobs 속성을 사용하며 작업 식별자(ID)와 작업 세부 내용 간의 맵핑(mapping) 형태로 명시가 되는데,

예를 들어, job1job2job3이라는 작업 ID를 가진 3개의 작업을 추가하려면 다음과 같이 설정한다.

.github/workflows/example.yml

# ...(생략)...

jobs:
  job1:
    # job1에 대한 세부 내용
  job2:
    # job2에 대한 세부 내용
  job3:
    # job3에 대한 세부 내용

작업의 세부 내용으로는 여러 가지 내용을 명시할 수 있는데, 필수로 들어거야 하는 runs-on 속성을 통해 해당 리눅스나 윈도우즈와 같은 실행 환경을 지정해줘야 한다.

예를 들어, 가장 널리 사용되는 우분투의 최신 실행 환경에서 해당 작업을 실행하고 싶다면 다음과 같이 설정한다.

.github/workflows/example.yml

# ...(생략)...

jobs:
  job1:
    runs-on: ubuntu-latest
    steps:
      # ...(생략)...

작업에서 가장 중요한 부분은 작업 순서를 정의하는 것인데, 이 부분은 steps 속성을 통해서 설정을 하며 다음 섹션에서 자세히 알아보자****