InfoGrab Docs

잡 트러블슈팅

CI/CD 잡 실행 시 발생하는 일반적인 문제와 해결 방법.

잡을 사용할 때 다음과 같은 문제가 발생할 수 있습니다. changes: 를 사용할 때 잡이나 파이프라인이 예기치 않게 실행되는 경우 # 머지 리퀘스트 파이프라인 없이 rules: changes 또는 only: changes 를 사용할 때 잡이나 파이프라인이 예기치 않게 실행될 수 있습니다. 머지 리퀘스트와 명시적 연결이 없는 브랜치나 태그의 파이프라인은 이전 SHA를 사용하여 diff를 계산합니다. 이 계산은 git diff HEAD~ 와 동일하며 다음과 같은 예기치 않은 동작을 유발할 수 있습니다: GitLab에 새 브랜치나 새 태그를 푸시할 때 changes 규칙은 항상 true로 평가됩니다. 새 커밋을 푸시할 때 변경된 파일은 이전 커밋을 기본 SHA로 사용하여 계산됩니다. 또한 changes 가 있는 규칙은 예약된 파이프라인 에서 항상 true로 평가됩니다. 예약된 파이프라인이 실행될 때 모든 파일이 변경된 것으로 간주되므로 changes 를 사용하는 예약된 파이프라인에 잡이 항상 추가될 수 있습니다. CI/CD 변수에서의 파일 경로 # CI/CD 변수에서 파일 경로를 사용할 때 주의하세요. 후행 슬래시는 변수 정의에서 올바르게 보일 수 있지만, script: , changes: 또는 다른 키워드에서 확장될 때 유효하지 않을 수 있습니다. 예를 들어: docker_build: variables: DOCKERFILES_DIR: 'path/to/files/' # This variable should not have a trailing '/' character script: echo "A docker job" rules: - changes: - $DOCKERFILES_DIR/* DOCKERFILES_DIR 변수가 changes: 섹션에서 확장될 때 전체 경로는 path/to/files//* 가 됩니다. 이중 슬래시는 사용된 키워드, 러너의 셸과 OS 등 다양한 요인에 따라 예기치 않은 동작을 유발할 수 있습니다. You are not allowed to download code from this project. 오류 메시지 # GitLab 관리자가 비공개 프로젝트에서 보호된 수동 잡을 실행할 때 파이프라인이 실패하는 것을 볼 수 있습니다. CI/CD 잡은 보통 잡이 시작될 때 프로젝트를 클론하며, 이는 잡을 실행하는 사용자의 권한 을 사용합니다. 관리자를 포함한 모든 사용자는 비공개 프로젝트의 소스를 클론하려면 해당 프로젝트의 직접 멤버여야 합니다. 이 동작을 변경하기 위한 이슈가 있습니다 . 보호된 수동 잡을 실행하려면: 관리자를 비공개 프로젝트의 직접 멤버로 추가하세요(어떤 역할이든 가능). 프로젝트의 직접 멤버인 사용자를 가장하세요 . 다시 실행할 때 CI/CD 잡이 최신 설정을 사용하지 않는 경우 # 파이프라인 설정은 파이프라인이 생성될 때만 가져옵니다. 잡을 재실행할 때는 매번 동일한 설정을 사용합니다. include 로 추가된 별도 파일을 포함하여 설정 파일을 업데이트한 경우 새 설정을 사용하려면 새 파이프라인을 시작해야