InfoGrab Docs

job 아티팩트 트러블슈팅

요약

job 아티팩트를 사용할 때 다음 문제가 발생할 수 있습니다. 기본적으로 job은 이전 stage의 모든 아티팩트를 가져오지만, dependencies 또는 needs를 사용하는 job은 기본적으로 모든 job에서 아티팩트를 가져오지 않습니다.

job 아티팩트를 사용할 때 다음 문제가 발생할 수 있습니다.

Job이 특정 아티팩트를 가져오지 않음#

기본적으로 job은 이전 stage의 모든 아티팩트를 가져오지만, dependencies 또는 needs를 사용하는 job은 기본적으로 모든 job에서 아티팩트를 가져오지 않습니다.

이러한 키워드를 사용하는 경우 아티팩트는 job의 하위 집합에서만 가져옵니다. 이러한 키워드로 아티팩트를 가져오는 방법에 대한 정보는 키워드 참조를 검토하세요:

Job 아티팩트가 디스크 공간을 너무 많이 사용#

job 아티팩트가 디스크 공간을 너무 많이 사용하는 경우 job 아티팩트 관리 문서를 참조하세요.

오류 메시지 No files to upload#

이 메시지는 러너가 업로드할 파일을 찾을 수 없을 때 job 로그에 나타납니다. 파일 경로가 잘못되었거나 파일이 생성되지 않은 경우입니다. job 로그에서 파일 이름과 생성되지 않은 이유를 지정하는 다른 오류나 경고를 확인할 수 있습니다.

더 자세한 job 로그를 위해 CI/CD 디버그 로깅을 활성화하고 job을 다시 시도할 수 있습니다. 이 로깅은 파일이 생성되지 않은 이유에 대한 더 많은 정보를 제공할 수 있습니다.

Windows 러너에서 dotenv 아티팩트 업로드 시 오류 메시지 FATAL: invalid argument#

PowerShell의 echo 명령은 UCS-2 LE BOM(Byte Order Mark) 인코딩으로 파일을 작성하지만, UTF-8만 지원됩니다. echodotenv 아티팩트를 만들려고 하면 FATAL: invalid argument 오류가 발생합니다.

대신 UTF-8을 사용하는 PowerShell의 Add-Content를 사용하세요:

test-job:
  stage: test
  tags:
    - windows
  script:
    - echo "test job"
    - Add-Content -Path build.env -Value "MY_ENV_VAR=true"
  artifacts:
    reports:
      dotenv: build.env

Job 아티팩트가 만료되지 않음#

일부 job 아티팩트가 예상대로 만료되지 않는 경우 Keep artifacts from most recent successful jobs 설정이 활성화되어 있는지 확인하세요.

이 설정이 활성화되면 각 ref의 최신 성공 파이프라인에서 job 아티팩트가 만료되지 않고 삭제되지 않습니다.

오류 메시지 This job could not start because it could not retrieve the needed artifacts.#

job이 필요한 아티팩트를 가져올 수 없으면 시작에 실패하고 이 오류 메시지를 반환합니다. 이 오류는 다음 경우에 반환됩니다:

  • job의 종속성을 찾을 수 없습니다. 기본적으로 나중 stage의 job은 모든 이전 stage의 job에서 아티팩트를 가져오므로 이전 job이 모두 종속으로 간주됩니다. job이 dependencies 키워드를 사용하면 나열된 job만 종속됩니다.
  • 아티팩트가 이미 만료되었습니다. artifacts:expire_in으로 더 긴 만료 기간을 설정할 수 있습니다.
  • job이 권한 부족으로 인해 관련 리소스에 접근할 수 없습니다.

job이 needs:artifacts를 사용하는 경우 다음 추가 트러블슈팅 단계를 참조하세요:

needs:project로 구성된 job의 경우#

could not retrieve the needed artifacts. 오류는 다음과 유사한 구성의 needs:project를 사용하는 job에서 발생할 수 있습니다:

rspec:
  needs:
    - project: my-group/my-project
      job: dependency-job
      ref: master
      artifacts: true

이 오류를 트러블슈팅하려면 다음을 확인하세요:

  • 프로젝트 my-group/my-project가 Premium 구독 플랜을 가진 그룹에 있는지 확인합니다.
  • job을 실행하는 사용자가 my-group/my-project의 리소스에 접근할 수 있는지 확인합니다.
  • project, job, ref 조합이 존재하고 원하는 종속성을 반환하는지 확인합니다.
  • 사용 중인 변수가 올바른 값으로 평가되는지 확인합니다.

CI_JOB_TOKEN을 사용하는 경우 다른 프로젝트에서 아티팩트를 가져오려면 프로젝트의 허용 목록에 토큰을 추가하세요.

needs:pipeline:job으로 구성된 job의 경우#

could not retrieve the needed artifacts. 오류는 다음과 유사한 구성의 needs:pipeline:job을 사용하는 job에서 발생할 수 있습니다:

rspec:
  needs:
    - pipeline: $UPSTREAM_PIPELINE_ID
      job: dependency-job
      artifacts: true

이 오류를 트러블슈팅하려면 다음을 확인하세요:

  • $UPSTREAM_PIPELINE_ID CI/CD 변수가 현재 파이프라인의 부모-자식 파이프라인 계층에서 사용 가능한지 확인합니다.
  • pipelinejob 조합이 존재하고 기존 파이프라인으로 확인되는지 확인합니다.
  • dependency-job이 실행되어 성공적으로 완료되었는지 확인합니다.

업그레이드 후 job에 UnlockPipelinesInQueueWorker 표시#

업그레이드 후 job이 멈추고 UnlockPipelinesInQueueWorker를 나타내는 오류를 표시할 수 있습니다.

해결 방법은 ci_unlock_pipelines_extra_low 기능 플래그를 활성화하는 것입니다. 기능 플래그를 토글하려면 관리자여야 합니다.

GitLab SaaS에서:

  • 다음 ChatOps 명령을 실행합니다:

    /chatops run feature set ci_unlock_pipelines_extra_low true
    

GitLab Self-Managed에서:

자세한 내용은 머지 리퀘스트 140318의 댓글을 참조하세요.

job 아티팩트 트러블슈팅

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

job 아티팩트를 사용할 때 다음 문제가 발생할 수 있습니다. 기본적으로 job은 이전 stage의 모든 아티팩트를 가져오지만, dependencies 또는 needs를 사용하는 job은 기본적으로 모든 job에서 아티팩트를 가져오지 않습니다.

job 아티팩트를 사용할 때 다음 문제가 발생할 수 있습니다.

Job이 특정 아티팩트를 가져오지 않음#

기본적으로 job은 이전 stage의 모든 아티팩트를 가져오지만, dependencies 또는 needs를 사용하는 job은 기본적으로 모든 job에서 아티팩트를 가져오지 않습니다.

이러한 키워드를 사용하는 경우 아티팩트는 job의 하위 집합에서만 가져옵니다. 이러한 키워드로 아티팩트를 가져오는 방법에 대한 정보는 키워드 참조를 검토하세요:

Job 아티팩트가 디스크 공간을 너무 많이 사용#

job 아티팩트가 디스크 공간을 너무 많이 사용하는 경우 job 아티팩트 관리 문서를 참조하세요.

오류 메시지 No files to upload#

이 메시지는 러너가 업로드할 파일을 찾을 수 없을 때 job 로그에 나타납니다. 파일 경로가 잘못되었거나 파일이 생성되지 않은 경우입니다. job 로그에서 파일 이름과 생성되지 않은 이유를 지정하는 다른 오류나 경고를 확인할 수 있습니다.

더 자세한 job 로그를 위해 CI/CD 디버그 로깅을 활성화하고 job을 다시 시도할 수 있습니다. 이 로깅은 파일이 생성되지 않은 이유에 대한 더 많은 정보를 제공할 수 있습니다.

Windows 러너에서 dotenv 아티팩트 업로드 시 오류 메시지 FATAL: invalid argument#

PowerShell의 echo 명령은 UCS-2 LE BOM(Byte Order Mark) 인코딩으로 파일을 작성하지만, UTF-8만 지원됩니다. echodotenv 아티팩트를 만들려고 하면 FATAL: invalid argument 오류가 발생합니다.

대신 UTF-8을 사용하는 PowerShell의 Add-Content를 사용하세요:

test-job:
  stage: test
  tags:
    - windows
  script:
    - echo "test job"
    - Add-Content -Path build.env -Value "MY_ENV_VAR=true"
  artifacts:
    reports:
      dotenv: build.env

Job 아티팩트가 만료되지 않음#

일부 job 아티팩트가 예상대로 만료되지 않는 경우 Keep artifacts from most recent successful jobs 설정이 활성화되어 있는지 확인하세요.

이 설정이 활성화되면 각 ref의 최신 성공 파이프라인에서 job 아티팩트가 만료되지 않고 삭제되지 않습니다.

오류 메시지 This job could not start because it could not retrieve the needed artifacts.#

job이 필요한 아티팩트를 가져올 수 없으면 시작에 실패하고 이 오류 메시지를 반환합니다. 이 오류는 다음 경우에 반환됩니다:

  • job의 종속성을 찾을 수 없습니다. 기본적으로 나중 stage의 job은 모든 이전 stage의 job에서 아티팩트를 가져오므로 이전 job이 모두 종속으로 간주됩니다. job이 dependencies 키워드를 사용하면 나열된 job만 종속됩니다.
  • 아티팩트가 이미 만료되었습니다. artifacts:expire_in으로 더 긴 만료 기간을 설정할 수 있습니다.
  • job이 권한 부족으로 인해 관련 리소스에 접근할 수 없습니다.

job이 needs:artifacts를 사용하는 경우 다음 추가 트러블슈팅 단계를 참조하세요:

needs:project로 구성된 job의 경우#

could not retrieve the needed artifacts. 오류는 다음과 유사한 구성의 needs:project를 사용하는 job에서 발생할 수 있습니다:

rspec:
  needs:
    - project: my-group/my-project
      job: dependency-job
      ref: master
      artifacts: true

이 오류를 트러블슈팅하려면 다음을 확인하세요:

  • 프로젝트 my-group/my-project가 Premium 구독 플랜을 가진 그룹에 있는지 확인합니다.
  • job을 실행하는 사용자가 my-group/my-project의 리소스에 접근할 수 있는지 확인합니다.
  • project, job, ref 조합이 존재하고 원하는 종속성을 반환하는지 확인합니다.
  • 사용 중인 변수가 올바른 값으로 평가되는지 확인합니다.

CI_JOB_TOKEN을 사용하는 경우 다른 프로젝트에서 아티팩트를 가져오려면 프로젝트의 허용 목록에 토큰을 추가하세요.

needs:pipeline:job으로 구성된 job의 경우#

could not retrieve the needed artifacts. 오류는 다음과 유사한 구성의 needs:pipeline:job을 사용하는 job에서 발생할 수 있습니다:

rspec:
  needs:
    - pipeline: $UPSTREAM_PIPELINE_ID
      job: dependency-job
      artifacts: true

이 오류를 트러블슈팅하려면 다음을 확인하세요:

  • $UPSTREAM_PIPELINE_ID CI/CD 변수가 현재 파이프라인의 부모-자식 파이프라인 계층에서 사용 가능한지 확인합니다.
  • pipelinejob 조합이 존재하고 기존 파이프라인으로 확인되는지 확인합니다.
  • dependency-job이 실행되어 성공적으로 완료되었는지 확인합니다.

업그레이드 후 job에 UnlockPipelinesInQueueWorker 표시#

업그레이드 후 job이 멈추고 UnlockPipelinesInQueueWorker를 나타내는 오류를 표시할 수 있습니다.

해결 방법은 ci_unlock_pipelines_extra_low 기능 플래그를 활성화하는 것입니다. 기능 플래그를 토글하려면 관리자여야 합니다.

GitLab SaaS에서:

  • 다음 ChatOps 명령을 실행합니다:

    /chatops run feature set ci_unlock_pipelines_extra_low true
    

GitLab Self-Managed에서:

자세한 내용은 머지 리퀘스트 140318의 댓글을 참조하세요.