InfoGrab DocsInfoGrab Docs

CI/CD job 로그

요약

job 로그는 CI/CD job의 전체 실행 기록을 표시합니다. job 로그를 보려는 프로젝트를 선택합니다. 왼쪽 사이드바에서 CI/CD > Pipelines를 선택합니다. 파이프라인 보기에서 job 목록에서 job 로그 페이지를 보려는 job을 선택합니다.

job 로그는 CI/CD job의 전체 실행 기록을 표시합니다.

job 로그 보기#

job 로그를 보려면:

  • job 로그를 보려는 프로젝트를 선택합니다.

  • 왼쪽 사이드바에서 CI/CD > Pipelines를 선택합니다.

  • 검사할 파이프라인을 선택합니다.

  • 파이프라인 보기에서 job 목록에서 job 로그 페이지를 보려는 job을 선택합니다.

job 및 해당 로그 출력에 대한 자세한 정보를 보려면 job 로그 페이지를 스크롤합니다.

전체 화면 모드로 job 로그 보기#

Show full screen을 클릭하여 전체 화면 모드로 job 로그 내용을 볼 수 있습니다.

전체 화면 모드를 사용하려면 웹 브라우저도 이를 지원해야 합니다. 웹 브라우저가 전체 화면 모드를 지원하지 않으면 옵션이 제공되지 않습니다.

job 로그 섹션 펼치기 및 접기#

히스토리
  • bash 셸에서 멀티라인 명령어 출력이 GitLab 16.5에서 FF_SCRIPT_SECTIONS라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화됩니다.

이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 기록을 참조하세요.

FF_SCRIPT_SECTIONS가 활성화되면 멀티라인 스크립트 명령어가 job 로그에서 접기 가능한 섹션으로 표시됩니다. 싱글라인 명령어는 $ 접두사와 함께 직접 출력됩니다. 소요 시간은 표시되지 않습니다.

powershellpwsh 셸에서는 FF_SCRIPT_SECTIONS가 접기 가능한 섹션을 생성하지 않습니다. 명령어는 색상 출력만으로 표시됩니다.

커스텀 접기 가능 섹션 만들기#

GitLab이 접기 가능 섹션을 구분하는 데 사용하는 특수 코드를 수동으로 출력하여 job 로그의 접기 가능 섹션을 생성할 수 있습니다:

  • 섹션 시작 마커: \e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K + TEXT_OF_SECTION_HEADER

  • 섹션 종료 마커: \e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K

CI 구성의 스크립트 섹션에 이 코드를 추가해야 합니다. 예를 들어 printf를 사용하는 경우:

job1:
  script:
    - printf '\e[0Ksection_start:%d:%s\r\e[0K%s\n' "$(date +%s)" 'my_first_section' 'Header of the 1st collapsible section'
    - echo 'this line should be hidden when collapsed'
    - printf '\e[0Ksection_end:%d:%s\r\e[0K\n' "$(date +%s)" 'my_first_section'

위 예시에서:

  • date +%s: Unix 타임스탬프를 생성하는 명령어 (예: 1560896352).

  • my_first_section: 섹션에 부여된 이름. 이름은 문자, 숫자, _, ., - 문자로만 구성될 수 있습니다.

  • \r\e[0K: 렌더링된(색상 있는) job 로그에서 섹션 마커가 표시되지 않도록 하는 이스케이프 시퀀스. 원시 job 로그를 볼 때 표시되며, job 로그 오른쪽 상단에서 Show complete raw ( doc-text )를 선택하여 접근할 수 있습니다.

\r: 캐리지 리턴(커서를 줄의 시작으로 되돌림).

  • \e[0K: 커서 위치에서 줄 끝까지 줄을 지우는 ANSI 이스케이프 코드. (\e[K만으로는 작동하지 않으며 0을 포함해야 합니다).

원시 job 로그 샘플:

\e[0Ksection_start:1560896352:my_first_section\r\e[0KHeader of the 1st collapsible section
this line should be hidden when collapsed
\e[0Ksection_end:1560896353:my_first_section\r\e[0K

job 콘솔 로그 샘플:

숨겨진 콘텐츠가 있는 접힌 섹션을 보여주는 job 로그

스크립트로 섹션 표시 개선#

섹션 마커를 생성하는 printf 문을 job 출력에서 제거하려면 job 내용을 스크립트 파일로 이동하고 job에서 호출할 수 있습니다:

섹션 헤더를 처리할 수 있는 스크립트를 생성합니다. 예를 들어:

# Function for starting the section
section_start () {
  local section_title="${1}"
  local section_description="${2:-$section_title}"

  printf '\e[0Ksection_start:%d:%s[collapsed=true]\r\e[0K%s\n' "$(date +%s)" "$section_title" "$section_description"
}

# Function for ending the section
section_end () {
  local section_title="${1}"

  printf '\e[0Ksection_end:%d:%s\r\e[0K\n' "$(date +%s)" "$section_title"
}

# Create sections
section_start "my_first_section" "Header of the 1st collapsible section"

echo "this line should be hidden when collapsed"

section_end "my_first_section"

# Repeat as required

.gitlab-ci.yml 파일에 스크립트를 추가합니다:

job:
  script:
    - source script.sh

기본적으로 섹션 접기#

섹션을 기본적으로 접으려면 섹션 이름 뒤, \r 앞의 섹션 시작 마커에 [collapsed=true]를 추가합니다:

  • [collapsed=true]가 있는 섹션 시작 마커: \e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME[collapsed=true]\r\e[0K + TEXT_OF_SECTION_HEADER

  • 섹션 종료 마커(변경 없음): \e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K

CI 구성에 업데이트된 섹션 시작 텍스트를 추가합니다. 예를 들어 printf를 사용하는 경우:

job1:
  script:
    - printf '\e[0Ksection_start:%d:%s[collapsed=true]\r\e[0K%s\n' "$(date +%s)" 'my_first_section' 'Header of the 1st collapsible section'
    - echo 'this line should be hidden automatically after loading the job log'
    - printf '\e[0Ksection_end:%d:%s\r\e[0K\n' "$(date +%s)" 'my_first_section'

job 로그 삭제#

job 로그를 삭제하면 전체 job도 지워집니다.

자세한 내용은 job 로그 삭제를 참조하세요.

타임스탬프#

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
히스토리
  • GitLab 17.1에서 parse_ci_job_timestamps라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화됩니다.
  • 기능 플래그 parse_ci_job_timestamps가 GitLab 17.2에서 제거되었습니다.

  • GitLab 18.9에서 일반 가용성이 되었습니다.

기본적으로 job 로그는 각 줄에 ISO 8601 형식의 타임스탬프를 포함합니다. 타임스탬프를 사용하여 성능 이슈를 해결하고, 병목 현상을 식별하고, 특정 빌드 단계가 얼마나 걸리는지 측정합니다.

타임스탬프가 활성화되면 job 로그는 약 10% 더 많은 저장 공간을 사용합니다.

다음은 타임스탬프가 있는 job 로그의 예시입니다:

각 줄에 UTC 타임스탬프가 있는 job 로그

job 로그의 타임스탬프 제어#

사전 요구사항:

  • GitLab Runner 18.7 이상.

job 로그에 타임스탬프 표시 여부를 제어하려면 FF_TIMESTAMPS CI/CD 변수를 사용합니다:

  • 타임스탬프를 비활성화하려면 false로 설정

  • 타임스탬프를 명시적으로 활성화하려면 true로 설정

예를 들어:

variables:
  FF_TIMESTAMPS: false  # Disables timestamps

job:
  script:
    - echo "This job's log behavior depends on FF_TIMESTAMPS value"

자세한 내용은 .gitlab-ci.yml 파일에서 CI/CD 변수 정의를 참조하세요.

문제 해결#

job 로그 업데이트 느림#

실행 중인 job에 대한 job 로그 페이지를 방문할 때 로그 업데이트 전 최대 60초 지연이 있을 수 있습니다. 기본 새로 고침 시간은 60초이지만, 로그를 UI에서 한 번 보면 로그 업데이트가 3초마다 발생해야 합니다.

GitLab 18.0 이상에서 This job does not have a trace 오류#

GitLab Self-Managed 인스턴스를 18.0 이상으로 업그레이드한 후 This job does not have a trace 오류가 발생할 수 있습니다. 이는 다음 두 가지가 모두 있는 인스턴스에서 실패한 업그레이드 마이그레이션으로 인해 발생할 수 있습니다:

  • 오브젝트 스토리지 활성화

  • 제거된 기능 플래그 ci_enable_live_trace로 이전에 활성화된 증분 로깅. 이 기능 플래그는 GitLab Environment Toolkit 또는 Helm 차트 배포에서 기본적으로 활성화되지만 수동으로도 활성화할 수 있습니다.

영향받은 job에서 job 로그를 볼 수 있는 기능을 복원하려면 증분 로깅을 다시 활성화하세요.

CI/CD job 로그

GitLab v19.2
Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

job 로그는 CI/CD job의 전체 실행 기록을 표시합니다. job 로그를 보려는 프로젝트를 선택합니다. 왼쪽 사이드바에서 CI/CD > Pipelines를 선택합니다. 파이프라인 보기에서 job 목록에서 job 로그 페이지를 보려는 job을 선택합니다.

job 로그는 CI/CD job의 전체 실행 기록을 표시합니다.

job 로그 보기#

job 로그를 보려면:

  • job 로그를 보려는 프로젝트를 선택합니다.

  • 왼쪽 사이드바에서 CI/CD > Pipelines를 선택합니다.

  • 검사할 파이프라인을 선택합니다.

  • 파이프라인 보기에서 job 목록에서 job 로그 페이지를 보려는 job을 선택합니다.

job 및 해당 로그 출력에 대한 자세한 정보를 보려면 job 로그 페이지를 스크롤합니다.

전체 화면 모드로 job 로그 보기#

Show full screen을 클릭하여 전체 화면 모드로 job 로그 내용을 볼 수 있습니다.

전체 화면 모드를 사용하려면 웹 브라우저도 이를 지원해야 합니다. 웹 브라우저가 전체 화면 모드를 지원하지 않으면 옵션이 제공되지 않습니다.

job 로그 섹션 펼치기 및 접기#

히스토리
  • bash 셸에서 멀티라인 명령어 출력이 GitLab 16.5에서 FF_SCRIPT_SECTIONS라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화됩니다.

이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 기록을 참조하세요.

FF_SCRIPT_SECTIONS가 활성화되면 멀티라인 스크립트 명령어가 job 로그에서 접기 가능한 섹션으로 표시됩니다. 싱글라인 명령어는 $ 접두사와 함께 직접 출력됩니다. 소요 시간은 표시되지 않습니다.

powershellpwsh 셸에서는 FF_SCRIPT_SECTIONS가 접기 가능한 섹션을 생성하지 않습니다. 명령어는 색상 출력만으로 표시됩니다.

커스텀 접기 가능 섹션 만들기#

GitLab이 접기 가능 섹션을 구분하는 데 사용하는 특수 코드를 수동으로 출력하여 job 로그의 접기 가능 섹션을 생성할 수 있습니다:

  • 섹션 시작 마커: \e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K + TEXT_OF_SECTION_HEADER

  • 섹션 종료 마커: \e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K

CI 구성의 스크립트 섹션에 이 코드를 추가해야 합니다. 예를 들어 printf를 사용하는 경우:

job1:
  script:
    - printf '\e[0Ksection_start:%d:%s\r\e[0K%s\n' "$(date +%s)" 'my_first_section' 'Header of the 1st collapsible section'
    - echo 'this line should be hidden when collapsed'
    - printf '\e[0Ksection_end:%d:%s\r\e[0K\n' "$(date +%s)" 'my_first_section'

위 예시에서:

  • date +%s: Unix 타임스탬프를 생성하는 명령어 (예: 1560896352).

  • my_first_section: 섹션에 부여된 이름. 이름은 문자, 숫자, _, ., - 문자로만 구성될 수 있습니다.

  • \r\e[0K: 렌더링된(색상 있는) job 로그에서 섹션 마커가 표시되지 않도록 하는 이스케이프 시퀀스. 원시 job 로그를 볼 때 표시되며, job 로그 오른쪽 상단에서 Show complete raw ( doc-text )를 선택하여 접근할 수 있습니다.

\r: 캐리지 리턴(커서를 줄의 시작으로 되돌림).

  • \e[0K: 커서 위치에서 줄 끝까지 줄을 지우는 ANSI 이스케이프 코드. (\e[K만으로는 작동하지 않으며 0을 포함해야 합니다).

원시 job 로그 샘플:

\e[0Ksection_start:1560896352:my_first_section\r\e[0KHeader of the 1st collapsible section
this line should be hidden when collapsed
\e[0Ksection_end:1560896353:my_first_section\r\e[0K

job 콘솔 로그 샘플:

숨겨진 콘텐츠가 있는 접힌 섹션을 보여주는 job 로그

스크립트로 섹션 표시 개선#

섹션 마커를 생성하는 printf 문을 job 출력에서 제거하려면 job 내용을 스크립트 파일로 이동하고 job에서 호출할 수 있습니다:

섹션 헤더를 처리할 수 있는 스크립트를 생성합니다. 예를 들어:

# Function for starting the section
section_start () {
  local section_title="${1}"
  local section_description="${2:-$section_title}"

  printf '\e[0Ksection_start:%d:%s[collapsed=true]\r\e[0K%s\n' "$(date +%s)" "$section_title" "$section_description"
}

# Function for ending the section
section_end () {
  local section_title="${1}"

  printf '\e[0Ksection_end:%d:%s\r\e[0K\n' "$(date +%s)" "$section_title"
}

# Create sections
section_start "my_first_section" "Header of the 1st collapsible section"

echo "this line should be hidden when collapsed"

section_end "my_first_section"

# Repeat as required

.gitlab-ci.yml 파일에 스크립트를 추가합니다:

job:
  script:
    - source script.sh

기본적으로 섹션 접기#

섹션을 기본적으로 접으려면 섹션 이름 뒤, \r 앞의 섹션 시작 마커에 [collapsed=true]를 추가합니다:

  • [collapsed=true]가 있는 섹션 시작 마커: \e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME[collapsed=true]\r\e[0K + TEXT_OF_SECTION_HEADER

  • 섹션 종료 마커(변경 없음): \e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K

CI 구성에 업데이트된 섹션 시작 텍스트를 추가합니다. 예를 들어 printf를 사용하는 경우:

job1:
  script:
    - printf '\e[0Ksection_start:%d:%s[collapsed=true]\r\e[0K%s\n' "$(date +%s)" 'my_first_section' 'Header of the 1st collapsible section'
    - echo 'this line should be hidden automatically after loading the job log'
    - printf '\e[0Ksection_end:%d:%s\r\e[0K\n' "$(date +%s)" 'my_first_section'

job 로그 삭제#

job 로그를 삭제하면 전체 job도 지워집니다.

자세한 내용은 job 로그 삭제를 참조하세요.

타임스탬프#

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
히스토리
  • GitLab 17.1에서 parse_ci_job_timestamps라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화됩니다.
  • 기능 플래그 parse_ci_job_timestamps가 GitLab 17.2에서 제거되었습니다.

  • GitLab 18.9에서 일반 가용성이 되었습니다.

기본적으로 job 로그는 각 줄에 ISO 8601 형식의 타임스탬프를 포함합니다. 타임스탬프를 사용하여 성능 이슈를 해결하고, 병목 현상을 식별하고, 특정 빌드 단계가 얼마나 걸리는지 측정합니다.

타임스탬프가 활성화되면 job 로그는 약 10% 더 많은 저장 공간을 사용합니다.

다음은 타임스탬프가 있는 job 로그의 예시입니다:

각 줄에 UTC 타임스탬프가 있는 job 로그

job 로그의 타임스탬프 제어#

사전 요구사항:

  • GitLab Runner 18.7 이상.

job 로그에 타임스탬프 표시 여부를 제어하려면 FF_TIMESTAMPS CI/CD 변수를 사용합니다:

  • 타임스탬프를 비활성화하려면 false로 설정

  • 타임스탬프를 명시적으로 활성화하려면 true로 설정

예를 들어:

variables:
  FF_TIMESTAMPS: false  # Disables timestamps

job:
  script:
    - echo "This job's log behavior depends on FF_TIMESTAMPS value"

자세한 내용은 .gitlab-ci.yml 파일에서 CI/CD 변수 정의를 참조하세요.

문제 해결#

job 로그 업데이트 느림#

실행 중인 job에 대한 job 로그 페이지를 방문할 때 로그 업데이트 전 최대 60초 지연이 있을 수 있습니다. 기본 새로 고침 시간은 60초이지만, 로그를 UI에서 한 번 보면 로그 업데이트가 3초마다 발생해야 합니다.

GitLab 18.0 이상에서 This job does not have a trace 오류#

GitLab Self-Managed 인스턴스를 18.0 이상으로 업그레이드한 후 This job does not have a trace 오류가 발생할 수 있습니다. 이는 다음 두 가지가 모두 있는 인스턴스에서 실패한 업그레이드 마이그레이션으로 인해 발생할 수 있습니다:

  • 오브젝트 스토리지 활성화

  • 제거된 기능 플래그 ci_enable_live_trace로 이전에 활성화된 증분 로깅. 이 기능 플래그는 GitLab Environment Toolkit 또는 Helm 차트 배포에서 기본적으로 활성화되지만 수동으로도 활성화할 수 있습니다.

영향받은 job에서 job 로그를 볼 수 있는 기능을 복원하려면 증분 로깅을 다시 활성화하세요.