2017-10-01 3 views
0

Gitlab 문서는 약 GIT_STRATEGY: none를 다음 말한다 : (존재하는 경우, GitLab 러너의 사전 클론 스크립트 포함)Gitlab CI에서 GIT_STRATEGY = none 인 작업에 .gitlab-ci.yml을 사용할 수 있습니까?

none 또한 프로젝트 작업을 다시 사용하지만 모두 힘내 작업을 건너 뜁니다. 독점적으로 아티팩트 (예 : 배포)에서만 작동하는 작업에 주로 유용합니다. 저장소 리포지토리 데이터가있을 수 있지만 오래된 것으로 확신 할 수 있으므로 캐시 또는 아티팩트에서 프로젝트 작업 영역으로 가져온 파일에만 의존해야합니다.

나는 이것이 어떻게 작동해야하는지에 대해 아직도 혼란 스럽다. 소스 코드가 존재하지 않는다면 프로젝트 작업 공간에 소스가 없어서 .gitlab-ci.yml 파일도 누락 될 수 있습니다. 빌드 스크립트가 없으면 작업이 실패해야합니다. 근원이 외부 요인에 따라서 시간의 단지 한 부분을 놓치는 경우에, 일은 무작위로 실패 할 것이다, 매번 실패하기보다는 더 나쁘다. 그러나 매번 실패 할 경우 기능의 요점은 무엇입니까?

내가 볼 수있는 또 다른 가능성은 런타임시 주입 될 수 있으므로 저장소의 새로운 복사본이 없어도 빌드 스크립트가있을 수 있습니다. 그렇다면 빌더 프로세스에서 빌드 프로세스에 삽입 할 파일을 더 정의 할 수 있습니까? 이러한 특정 직무에 대한 제한은 무엇입니까?

답변

0

예 .gitlab-ci.yml 파일은 다른 모든 파일처럼 시스템에 복사되지 않습니다. 하지만 작업이 파일에서 실행되지 않아도 상관 없습니다. 작업은 대상에서 스크립트로 실행됩니다 (대상이 정의되기 전에 작업이 실행됩니다). 다른 서버에서 파일을 복사 할 수도 있지만 git clone없이 선택한 파일 만 복사 할 수는 없습니다.

GIT_STRATEGY: none을 실행하려는 좋은 예는 알림의 푸시에 실제로 저장소 데이터를 복제하지 않으려는 경우 빌드의 마지막 단계로 slackchat 알림과 같은 것입니다.