- Job이 특정 아티팩트를 검색하지 않음
- Job 아티팩트가 너무 많은 디스크 공간을 사용함
- 오류 메시지
No files to upload - 오류 메시지
Missing /usr/bin/gitlab-runner-helper. Uploading artifacts is disabled. - 오류 메시지 Windows 러너에서 dotenv 아티팩트를 업로드하는 중
FATAL: invalid argument - 작업 아티팩트의 만료 기한이 지나지 않음
-
오류 메시지
This job could not start because it could not retrieve the needed artifacts. - 업그레이드 후 작업이
UnlockPipelinesInQueueWorker를 보여줌
작업 아티팩트 문제 해결
작업 아티팩트를 다룰 때 다음과 같은 문제가 발생할 수 있습니다.
Job이 특정 아티팩트를 검색하지 않음
기본적으로 작업은 모든 이전 단계의 아티팩트를 가져오지만, dependencies나 needs를 사용하는 작업은 기본적으로 모든 작업으로부터 아티팩트를 가져오지 않습니다.
이러한 키워드를 사용하면 아티팩트가 일부 작업에서만 가져옵니다. 이러한 키워드로 아티팩트를 가져오는 방법에 대한 정보는 키워드 참조를 확인하세요:
Job 아티팩트가 너무 많은 디스크 공간을 사용함
작업 아티팩트가 너무 많은 디스크 공간을 사용하는 경우, 작업 아티팩트 관리 문서를 참조하세요.
오류 메시지 No files to upload
이 메시지는 작업 로그에 나타나며, 러너가 업로드할 파일을 찾지 못할 때 발생합니다. 파일 경로가 잘못되었거나 파일이 생성되지 않았을 수 있습니다. 파일 이름과 생성되지 않은 이유를 명시하는 다른 오류나 경고를 작업 로그에서 확인할 수 있습니다.
더 자세한 작업 로그를 원하면 CI/CD 디버그 로깅을 활성화하고 작업을 다시 시도하세요. 이 로깅을 통해 파일이 생성되지 않은 이유에 대한 더 자세한 정보를 제공할 수 있습니다.
오류 메시지 Missing /usr/bin/gitlab-runner-helper. Uploading artifacts is disabled.
- GitLab 15.2에서 도입된 기능으로, GitLab Runner는
DEBUG대신RUNNER_DEBUG를 사용하여 이 문제를 해결했습니다.
GitLab 15.1 이전에는 DEBUG라는 CI/CD 변수를 설정하면 아티팩트 업로드에 실패할 수 있습니다.
이 문제를 해결하려면 다음을 수행할 수 있습니다:
- GitLab 및 GitLab Runner 15.2로 업데이트
- 다른 변수 이름 사용
-
script명령어에서 환경 변수로 설정
failing_test_job: # 이 작업은 gitlab-org/gitlab-runner#3068 이슈 때문에 실패할 수 있음
variables:
DEBUG: true
script: bin/mycommand
artifacts:
paths:
- bin/results
successful_test_job: # 해당 작업은 `DEBUG`라는 CI/CD 변수를 정의하지 않으며 이 문제의 영향을 받지 않음
script: DEBUG=true bin/mycommand
artifacts:
paths:
- bin/results
오류 메시지 Windows 러너에서 dotenv 아티팩트를 업로드하는 중 FATAL: invalid argument
PowerShell echo 명령은 파일을 UCS-2 LE BOM (Byte Order Mark) 인코딩으로 작성하지만, UTF-8만 지원됩니다. echo를 사용하여 dotenv 아티팩트를 만들려고 하면 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
작업 아티팩트의 만료 기한이 지나지 않음
일부 작업 아티팩트가 예상대로 만료되지 않는 경우, Keep artifacts from most recent successful jobs 설정이 활성화되어 있는지 확인하세요.
이 설정이 활성화된 경우, 각 참조의 최근 성공한 파이프라인의 작업 아티팩트는 만료되지 않으며 삭제되지 않습니다.
오류 메시지 This job could not start because it could not retrieve the needed artifacts.
작업이 시작하지 못하고 이 오류 메시지가 표시되면 작업이 기대하는 아티팩트를 가져올 수 없는 경우입니다. 이 오류는 다음 경우에 반환됩니다:
- 작업의 종속 항목을 찾을 수 없는 경우. 기본적으로 나중 단계의 작업은 모든 앞 단계의 작업에서 아티팩트를 가져오므로 모든 앞의 작업이 종속적으로 간주됩니다. 작업이
dependencies키워드를 사용하는 경우 디렉터리에 있는 작업만 종속적입니다. - 아티팩트가 이미 만료된 경우.
artifacts:expire_in으로 만료 기간을 더 길게 설정할 수 있습니다. - 작업이 관련 리소스에 접근할 수 없는 경우. 권한이 충분하지 않아 작업을 시작할 수 없는 경우 사용됩니다.
작업이 needs:artifacts를 사용하는 경우 해당 추가적인 문제 해결 단계를 참조하세요:
needs:project로 구성된 작업의 경우
needs:project를 사용하는 작업에서 발생할 수 있는 needed artifacts. 오류에는 다음과 유사한 구성이 있습니다:
yaml
rspec:
needs:
- project: my-group/my-project
job: dependency-job
ref: master
artifacts: true
이 오류를 해결하려면 다음을 확인하세요:
-
my-group/my-project프로젝트가 Premium 가입 정책이 있는 그룹에 있는지 확인합니다. - 작업을 실행하는 사용자가
my-group/my-project의 리소스에 액세스할 수 있는지 확인합니다. - 사용 중인 모든 변수가 올바른 값을 평가하는지 확인합니다.
needs:pipeline:job으로 구성된 작업의 경우
needs:pipeline:job을 사용하는 작업에서 발생할 수 있는 needed artifacts. 오류에는 다음과 유사한 구성이 있습니다:
yaml
rspec:
needs:
- pipeline: $UPSTREAM_PIPELINE_ID
job: dependency-job
artifacts: true
이 오류를 해결하려면 다음을 확인하세요:
-
$UPSTREAM_PIPELINE_IDCI/CD 변수가 현재 파이프라인의 부모-자식 파이프라인 계층 구조에서 사용 가능한지 확인합니다. -
pipeline과job조합이 존재하고 실제 파이프라인으로 해석되는지 확인합니다. -
dependency-job이 실행되고 성공적으로 완료되었는지 확인합니다.
업그레이드 후 작업이 UnlockPipelinesInQueueWorker를 보여줌
작업이 멈추고 UnlockPipelinesInQueueWorker라는 오류가 표시될 수 있습니다.
이 문제는 업그레이드 후 발생할 수 있습니다.
이 문제를 해결하려면 ci_unlock_pipelines_extra_low 피처 플래그를 활성화하세요.
피처 플래그를 전환하려면 관리자 권한이 필요합니다.
GitLab SaaS에서:
-
다음 ChatOps 명령을 실행하세요:
/chatops run feature set ci_unlock_pipelines_extra_low true
GitLab Self-Managed에서:
-
ci_unlock_pipelines_extra_low라는 피처 플래그를 활성화하세요.
자세한 정보는 merge request 140318의 코멘트를 참조하세요.
도움말