Documentation

프로젝트는 scm_branch 필드의 소스 제어에서 사용할 분기, 태그 또는 참조를 지정합니다. 해당 항목은 표시된 것처럼 프로젝트 세부 정보 필드에 지정된 값으로 표시됩니다.

_images/projects-create-scm-project-branching-emphasized.png

프로젝트에는 ‘분기 덮어쓰기 허용’ 옵션이 있습니다. 이를 선택하면 프로젝트 관리자가 분기 선택을 해당 프로젝트를 사용하는 작업 템플릿에 위임할 수 있습니다(use_role 프로젝트만 필요).

_images/projects-create-scm-project-branch-override-checked.png

소스 트리 복사 동작

모든 작업 실행에는 자체 개인 데이터 디렉터리가 있습니다. 이 디렉터리에는 작업이 실행되고 있는 지정된 ``scm_branch``의 프로젝트 소스 트리 사본이 포함되어 있습니다. 작업에서는 프로젝트 폴더를 변경하고 실행이 계속되는 동안 이러한 변경 사항을 활용할 수 있습니다. 이 폴더는 임시이며 작업 실행이 끝날 때 정리됩니다.

**정리**를 선택하면 |at|에서 git 또는 Subversion`_과 관련된 각 Ansible 모듈에서 ``force` 매개변수를 사용하여 리포지터리의 로컬 사본에 있는 수정된 파일을 삭제합니다.

_images/projects-create-scm-project-clean-checked.png

프로젝트 버전 동작

Typically, during a project update, the revision of the default branch (specified in the SCM Branch field of the project) is stored when updated, and jobs using that project will employ this revision. Providing a non-default SCM Branch (not a commit hash or tag) in a job, the newest revision is pulled from the source control remote immediately before the job starts. This revision is shown in the Source Control Revision field of the job and its respective project update.

_images/jobs-output-branch-override-example.png

결과적으로 기본이 아닌 분기에는 오프라인 작업을 실행할 수 없습니다. 작업이 소스 제어에서 정적 버전을 실행 중인지 확인하려면 태그 또는 커밋 해시를 사용합니다. 프로젝트 업데이트에서는모든 분기의 버전을 저장하지 않고 프로젝트 기본 분기만 저장합니다.

SCM 분기 필드가 검증되지 않았으므로 유효성 확인을 위해 프로젝트를 업데이트해야 합니다. 이 필드가 제공되거나 메시지가 표시되면 작업 템플릿의 플레이북 필드가 검증되지 않으며 필요한 플레이북이 있는지 확인하려면 작업 템플릿을 시작해야 합니다.

Git 참조 사양

SCM 참조 사양 필드는 업데이트 중 원격에서 다운로드해야 하는 추가 참조를 지정합니다. 예를 들면 다음과 같습니다.

  1. refs/*:refs/remotes/origin/*: 원격의 원격을 포함하여 모든 참조를 가져옵니다.

  2. ``refs/pull/*:refs/remotes/origin/pull/*``(GitHub 관련): 모든 가져오기 요청에 대해 모든 참조를 가져옵니다.

  3. refs/pull/62/head:refs/remotes/origin/pull/62/head: 하나의 GitHub 가져오기 요청에 대한 참조를 가져옵니다.

대규모 프로젝트의 경우 첫 번째 또는 두 번째 예제를 사용할 때 성능에 미치는 영향을 고려해야 합니다.

SCM 참조 사양 매개변수는 프로젝트 분기의 가용성에 영향을 미치며, 이 매개변수가 없으면 사용할 수 없는 참조에 대한 액세스를 허용할 수 있습니다. 위 예제에서는 사용자가 SCM 분기**에서 가져오기 요청을 제공할 수 있도록 허용하는데, **SCM 참조 사양 필드 없이는 수행할 수 없습니다.

Ansible Git 모듈은 기본적으로 refs/heads/*``를 가져옵니다. 즉, **SCM 참조 사양**이 비어 있는 경우 프로젝트의 분기 태그(그 안의 커밋 해시 포함)를 SCM 분기로 사용할 있습니다. **SCM 참조 사양** 필드에 지정된 값은 덮어쓰기로 사용할 있는 *SCM 분기** 필드에 영향을 미칩니다. 프로젝트 업데이트(모든 유형)는 추가 ``git fetch 명령을 수행하여 원격에서 해당 참조 사양을 가져옵니다.

예: 첫 번째 또는 두 번째 참조 사양 예에서 분기 덮어쓰기를 허용하는 프로젝트를 설정할 수 있습니다. –> **SCM 분기**를 묻는 작업 템플릿에 이 프로젝트를 사용합니다. –> 새 가져오기 요청이 생성되면 클라이언트가 작업 템플릿을 시작하여 분기 ``pull/N/head``를 제공할 수 있습니다. –> 작업 템플릿이 제공된 GitHub 가져오기 요청 참조에 대해 실행됩니다.

Ansible Git 모듈에 대한 자세한 내용은 https://docs.ansible.com/ansible/latest/modules/git_module.html을 참조하십시오.