워크플로우 실행 로그 사용하기
워크플로우 실행 로그 사용하기
워크플로우 실행의 각 작업에 대한 로그를 보고, 검색하고, 다운로드할 수 있어요.
출처: 문서
본문
워크플로우 실행의 각 작업에 대한 로그를 보고, 검색하고, 다운로드할 수 있어요.
워크플로우 실행 페이지에서 워크플로우 실행이 진행 중인지 완료되었는지 확인할 수 있어요. 공개 저장소를 포함해 워크플로우 실행 정보를 보려면 GitHub 계정에 로그인해야 합니다. 자세한 내용은 Access permissions on GitHub를 참고하세요.
실행이 완료된 경우 결과가 성공(success), 실패(failure), 취소(canceled), 중립(neutral) 중 무엇인지 볼 수 있어요. 실행이 실패했다면 빌드 로그를 보고 검색해 실패를 진단하고 워크플로우를 재실행할 수 있어요. 또한 청구 가능 작업 실행 분을 보거나, 로그와 빌드 아티팩트를 다운로드할 수 있습니다.
GitHub Actions는 Checks API를 사용해 워크플로우에 대한 상태, 결과, 로그를 출력해요. GitHub는 각 워크플로우 실행에 대해 새 체크 스위트(check suite)를 생성합니다. 체크 스위트는 워크플로우의 각 작업에 대한 체크 실행(check run)을 포함하고, 각 작업은 단계를 포함해요. GitHub Actions는 워크플로우의 한 단계로 실행됩니다. Checks API에 대한 자세한 내용은 REST API endpoints for checks를 참고하세요.
[!NOTE] 저장소에 유효한 워크플로우 파일만 커밋해야 해요.
.github/workflows에 유효하지 않은 워크플로우 파일이 있으면 GitHub Actions가 모든 새 커밋에 대해 실패한 워크플로우 실행을 생성합니다.
실패 진단을 위한 로그 보기
워크플로우 실행이 실패하면 어떤 단계가 실패를 일으켰는지 볼 수 있고, 실패한 단계의 빌드 로그를 검토해 문제를 해결할 수 있어요. 각 단계를 실행하는 데 걸린 시간도 볼 수 있어요. 또한 로그 파일의 특정 줄에 대한 퍼머링크(permalink)를 복사해 팀과 공유할 수 있습니다. 이 단계를 수행하려면 저장소에 대한 읽기 권한이 필요합니다.
워크플로우 파일에 구성된 단계 외에도 GitHub는 각 작업에 작업 실행을 설정하고 완료하는 두 개의 추가 단계를 추가해요. 이 단계들은 "Set up job"과 "Complete job" 이름으로 워크플로우 실행에 기록됩니다.
GitHub 호스팅 러너에서 실행되는 작업의 경우, "Set up job"은 러너 이미지의 세부 정보를 기록하고 러너 머신에 사전 설치된 도구 목록에 대한 링크를 포함해요.
-
GitHub에서 저장소의 메인 페이지로 이동하세요.
-
저장소 이름 아래에서 Actions을 클릭하세요.

-
왼쪽 사이드바에서 보고 싶은 워크플로우를 클릭하세요.

-
워크플로우 실행 목록에서 실행 이름을 클릭해 워크플로우 실행 요약을 확인하세요.
-
Jobs 아래 또는 시각화 그래프에서 보고 싶은 작업을 클릭하세요.
-
실패한 단계는 결과를 표시하기 위해 자동으로 확장됩니다.
-
선택 사항으로, 로그의 특정 줄에 대한 링크를 얻으려면 단계의 줄 번호를 클릭하세요. 그런 다음 웹 브라우저의 주소 표시줄에서 링크를 복사할 수 있어요.

로그 검색하기
특정 단계에 대한 빌드 로그를 검색할 수 있어요. 로그를 검색할 때 확장된 단계만 결과에 포함됩니다. 이 단계를 수행하려면 저장소에 대한 읽기 권한이 필요합니다.
-
GitHub에서 저장소의 메인 페이지로 이동하세요.
-
저장소 이름 아래에서 Actions을 클릭하세요.

-
왼쪽 사이드바에서 보고 싶은 워크플로우를 클릭하세요.

-
워크플로우 실행 목록에서 실행 이름을 클릭해 워크플로우 실행 요약을 확인하세요.
-
Jobs 아래 또는 시각화 그래프에서 보고 싶은 작업을 클릭하세요.
-
로그 출력의 오른쪽 위 모서리에 있는 Search logs 검색 상자에 검색어를 입력하세요.
로그 다운로드하기
워크플로우 실행에서 로그 파일을 다운로드할 수 있어요. 워크플로우의 아티팩트도 다운로드할 수 있습니다. 자세한 내용은 Store and share data with workflow artifacts를 참고하세요. 이 단계를 수행하려면 저장소에 대한 읽기 권한이 필요합니다.
-
GitHub에서 저장소의 메인 페이지로 이동하세요.
-
저장소 이름 아래에서 Actions을 클릭하세요.

-
왼쪽 사이드바에서 보고 싶은 워크플로우를 클릭하세요.

-
워크플로우 실행 목록에서 실행 이름을 클릭해 워크플로우 실행 요약을 확인하세요.
-
Jobs 아래 또는 시각화 그래프에서 보고 싶은 작업을 클릭하세요.
-
로그의 오른쪽 위 모서리에서 을 선택하세요.

[!NOTE] 부분적으로 재실행된 워크플로우의 로그 아카이브를 다운로드하면 아카이브에는 재실행된 작업만 포함됩니다. 워크플로우에서 실행된 작업의 완전한 로그 세트를 얻으려면 다른 작업을 실행한 이전 실행 시도의 로그 아카이브를 다운로드해야 해요.
로그 삭제하기
GitHub 웹 인터페이스나 프로그래밍 방식으로 워크플로우 실행의 로그 파일을 삭제할 수 있어요. 이 단계를 수행하려면 저장소에 대한 쓰기 권한이 필요합니다.
GitHub 웹 인터페이스로 로그 삭제하기
-
GitHub에서 저장소의 메인 페이지로 이동하세요.
-
저장소 이름 아래에서 Actions을 클릭하세요.

-
왼쪽 사이드바에서 보고 싶은 워크플로우를 클릭하세요.

-
워크플로우 실행 목록에서 실행 이름을 클릭해 워크플로우 실행 요약을 확인하세요.
-
오른쪽 위 모서리에서 드롭다운 메뉴를 선택한 다음 Delete all logs를 클릭하세요.

-
확인 프롬프트를 검토하세요.
로그를 삭제한 후에는 워크플로우 실행에 남은 로그 파일이 없음을 나타내기 위해 Delete all logs 버튼이 제거됩니다.
프로그래밍 방식으로 로그 삭제하기
다음 스크립트를 사용해 워크플로우의 모든 로그를 자동으로 삭제할 수 있어요. 여러 워크플로우 실행의 로그를 정리하는 유용한 방법이 될 수 있습니다.
아래 예시 스크립트를 실행하려면:
-
코드 예시를 복사해
delete-logs.sh라는 파일로 저장하세요. -
chmod +x delete-logs.sh로 실행 권한을 부여하세요. -
다음 명령을 실행하세요. 여기서
REPOSITORY_NAME은 저장소의 이름이고WORKFLOW_NAME은 워크플로우의 파일 이름입니다../delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME예를 들어
monalisa/octocat저장소의.github/workflows/ci.yaml워크플로우에 대한 모든 로그를 삭제하려면./delete-logs.sh monalisa/octocat ci.yaml을 실행하세요.
예시 스크립트
#!/usr/bin/env bash
# Delete all logs for a given workflow
# Usage: delete-logs.sh <repository> <workflow-name>
set -oe pipefail
REPOSITORY=$1
WORKFLOW_NAME=$2
# Validate arguments
if [[ -z "$REPOSITORY" ]]; then
echo "Repository is required"
exit 1
fi
if [[ -z "$WORKFLOW_NAME" ]]; then
echo "Workflow name is required"
exit 1
fi
echo "Getting all completed runs for workflow $WORKFLOW_NAME in $REPOSITORY"
RUNS=$(
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$REPOSITORY/actions/workflows/$WORKFLOW_NAME/runs" \
--paginate \
--jq '.workflow_runs[] | select(.conclusion != "") | .id'
)
echo "Found $(echo "$RUNS" | wc -l) completed runs for workflow $WORKFLOW_NAME"
# Delete logs for each run
for RUN in $RUNS; do
echo "Deleting logs for run $RUN"
gh api \
--silent \
--method DELETE \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$REPOSITORY/actions/runs/$RUN/logs" || echo "Failed to delete logs for run $RUN"
# Sleep for 100ms to avoid rate limiting
sleep 0.1
done
GitHub CLI로 로그 보기
[!NOTE] GitHub CLI에 대해 더 자세히 알아보려면 About GitHub CLI를 참고하세요.
특정 작업의 로그를 보려면 run view 하위 명령을 사용하세요. run-id를 로그를 보려는 실행의 ID로 바꾸세요. GitHub CLI는 실행에서 작업을 선택할 수 있는 대화형 메뉴를 반환해요. run-id를 지정하지 않으면 GitHub CLI가 최근 실행을 선택할 수 있는 대화형 메뉴를 반환한 다음, 실행에서 작업을 선택할 수 있는 또 다른 대화형 메뉴를 반환해요.
gh run view RUN_ID --log
또한 --job 플래그를 사용해 작업 ID를 지정할 수 있어요. job-id를 로그를 보려는 작업의 ID로 바꾸세요.
gh run view --job JOB_ID --log
grep을 사용해 로그를 검색할 수 있어요. 예를 들어 이 명령은 error라는 단어가 포함된 모든 로그 항목을 반환합니다.
gh run view --job JOB_ID --log | grep error
실패한 단계에 대한 로그만 필터링하려면 --log 대신 --log-failed를 사용하세요.
gh run view --job JOB_ID --log-failed