5.5. 작업 분기 덮어쓰기
프로젝트는 scm_branch
필드의 소스 제어에서 사용할 분기, 태그 또는 참조를 지정합니다. 이러한 값은 유형 세부 정보 필드에 지정된 값으로 표시됩니다.
작업을 생성하거나 편집할 때 분기 덮어쓰기를 허용하는 옵션이 있습니다. 이 옵션을 선택하면 프로젝트 관리자가 분기 선택을 해당 프로젝트를 사용하는 작업 템플릿에 위임할 수 있으며 프로젝트 use_role
만 있으면 됩니다.
5.5.1. 소스 트리 복사 동작
모든 작업 실행에는 자체 개인 데이터 디렉터리가 있습니다. 이 디렉터리에는 작업이 실행 중인 지정된 scm_branch
에 대한 프로젝트 소스 트리의 사본이 포함되어 있습니다. 작업에서는 프로젝트 폴더를 변경하고 실행이 계속되는 동안 이러한 변경 사항을 활용할 수 있습니다. 이 폴더는 임시이며 작업 실행이 끝날 때 제거됩니다.
clean 옵션을 선택하면 수정된 파일이 자동화 컨트롤러의 리포지토리의 로컬 사본에서 제거됩니다. 이는 git 또는 Subversion과 관련된 해당 Ansible 모듈에서 force 매개변수를 사용하여 수행됩니다.
추가 리소스
자세한 내용은 Ansible 문서의 매개 변수 섹션을 참조하십시오.
5.5.2. 프로젝트 버전 동작
프로젝트를 업데이트하는 동안 업데이트 시 기본 분기의 버전(프로젝트의 소스 제어 분기 필드에 지정됨)이 저장됩니다. 작업에 기본이 아닌 소스 제어 분기 (커밋 해시 또는 태그가 아님)를 제공하는 경우 작업이 시작되기 직전 소스 제어 원격에서 최신 버전을 가져옵니다. 이 버전은 작업의 소스 제어 버전 필드와 해당 프로젝트 업데이트에 표시됩니다.
결과적으로 기본이 아닌 분기에는 오프라인 작업 실행이 불가능합니다. 작업이 소스 제어에서 정적 버전을 실행 중인지 확인하려면 태그 또는 커밋 해시를 사용합니다. 프로젝트 업데이트에서는 프로젝트 기본 분기만 저장하지 않고 모든 분기를 저장합니다.
Source control branch 필드가 검증되지 않았으므로 유효성 확인을 위해 프로젝트를 업데이트해야 합니다. 이 필드가 제공되거나 메시지가 표시되면 작업 템플릿의 플레이북 필드가 검증되지 않으며, 작업 템플릿을 시작하여 예상되는 플레이북이 있는지 확인해야 합니다.
5.5.3. Git 참조 사양
소스 제어 refspec 필드는 업데이트에서 원격에서 다운로드해야 하는 추가 참조를 지정합니다. 예를 들면 다음과 같습니다.
-
refs/:refs/remotes/origin/
: 원격의 원격을 포함한 모든 참조를 가져옵니다. -
refs/pull/:refs/remotes/origin/pull/
(GitHub별): 모든 가져오기 요청에 대한 모든 refs를 가져옵니다. -
refs/pull/62/head:refs/remotes/origin/pull/62/head
: 하나의 GitHub pull request에 대한 ref를 가져옵니다.
대규모 프로젝트의 경우 첫 번째 또는 두 번째 예제를 사용할 때 성능에 미치는 영향을 고려하십시오.
Source control refspec 매개변수는 프로젝트 분기의 가용성에 영향을 미치며, 다른 방법으로는 사용할 수 없는 참조에 대한 액세스를 활성화할 수 있습니다. 위 예제를 사용하여 소스 제어 참조 사양 필드 없이는 사용할 수 없는 소스 제어 분기 에서 가져오기 요청을 제공합니다.
Ansible Git 모듈은 기본적으로 refs/heads/
를 가져옵니다. 즉, 소스 제어 참조 사양이 비어 있으면 프로젝트의 분기, 태그 및 커밋 해시를 소스 제어 분기 로 사용할 수 있습니다. Source 제어 refspec 필드에 지정된 값은 덮어쓰기로 사용할 수 있는 소스 제어 분기 필드에 영향을 미칩니다. 프로젝트 업데이트(모든 유형)는 추가 git fetch
명령을 수행하여 원격에서 해당 참조 사양을 가져옵니다.
예
첫 번째 또는 두 번째 refspec 예제로 분기 덮어쓰기를 활성화하는 프로젝트를 설정할 수 있습니다. 소스 제어 분기 를 입력하라는 메시지가 표시되는 작업 템플릿에서 이 값을 사용합니다. 그러면 새 가져오기 요청이 생성될 때 클라이언트가 작업 템플릿을 시작하여 분기 풀 /N/head
를 제공하고 작업 템플릿은 제공된 GitHub 가져오기 요청 참조에 대해 실행할 수 있습니다.
추가 리소스
자세한 내용은 Ansible Git 모듈을 참조하십시오.