브랜치 생성 절차
릴리스를 위해 Bahmni 브랜치를 만들어야 할 때 다음 단계를 따를 수 있습니다.
브랜치 생성 단계
- bahmni-scripts 저장소의 최신 내용을 받습니다.
- branchingScripts 폴더로 이동합니다.
- branch.sh, pushmaster.sh, pushbranch.sh, updateSHAs.sh 스크립트에서 새로 생성된 저장소가 있으면 'allrepos' 변수에 추가합니다.
- 각 저장소에서 브랜치를 시작할 커밋 SHA로 repo_revisions.properties를 업데이트해야 합니다. 다음 방법 중 하나를 사용합니다.
- i) updateSHAs.sh를 실행합니다. 각 브랜치의 최신 커밋 SHA를 선택해 repo_revisions.properties에 추가합니다.
branch.sh <version-to-be-released> <new-version> <revision-properties-file> - ii) 최신 커밋에서 분기하지 않으려면 각 저장소의 커밋 sha-id를 수동으로 수정하고 분기해야 할 새 저장소도 추가합니다.
- 릴리스할 버전, 새 버전, repo_revisions.properties 파일을 매개변수로 branch.sh를 실행합니다.
- (모든 구성 중 default-config만 분기됩니다.)
- 사용법:
- <version-to-be-released>는 릴리스할 현재 Bahmni 버전입니다.
- <new-version>은 다음 개발 버전입니다.
- <revision-properties-file>은 저장소 리비전 파일이며 전체 경로를 지정합니다.
- 예: 0.74 버전을 릴리스하려면 다음 명령을 실행합니다.
- branch.sh 0.74 0.75 repo_revisions.properties(give full path of this file)
- 이 스크립트는 각 저장소에 릴리스 브랜치(release-0.74)를 만들고 master 브랜치의 스냅숏 버전을 새 버전으로 올립니다(예: 0.74-snapshot에서 0.75-snapshot으로 변경).
- 홈 폴더에 'allrepos' 폴더가 생성됩니다.
- 버전이 갱신된 모든 저장소의 .diff 파일이 들어 있으므로 버전이 올바르게 변경되었는지 확인합니다.
- pushmaster.sh를 실행하여 master 브랜치의 버전 변경을 푸시합니다.
- pushbranch.sh를 실행하고 새 버전 이름을 매개변수로 지정하여 각 저장소에 생성된 릴리스 브랜치를 푸시합니다.
- 사용법: pushbranch.sh <version-to-be-released>
- 예: pushbranch.sh 0.74 (생성한 릴리스 브랜치가 0.74인 경우)
모든 커밋이 상위 버전 브랜치에 병합되었는지 확인하는 단계
- 저장소 https://github.com/Bahmni/utilities 를 복제합니다.
- libgit2 패키지가 설치되어 있는지 확인합니다(Mac에서는 brew, Linux에서는 apt-get/yum 같은 패키지 관리자 사용).
- python과 pip가 설치되어 있는지 확인합니다(https://pip.pypa.io/en/stable/installing/).
- 원한다면 Python virtualenv를 만듭니다(https://virtualenv.pypa.io/en/latest/). 선택 사항이지만 전역 Python 모듈이 불필요하게 늘어나는 것을 줄여 줍니다.
- 다음을 실행합니다(virtualenv가 아니면 sudo 사용).
- pip install pygit2
- pip install termcolor
- utilities 저장소에서 python branch_for_release/verify_merge.py -v1 <bahmni_version1> -v2 <bahmni_version2> -r <local_repo_path> 를 실행합니다.
- <bahmni_version1>은 비교할 낮은 브랜치 버전입니다(예: 0.78).
- <bahmni_version2>는 비교할 높은 브랜치 버전입니다(예: 0.80 또는 master).
- <local_repo_path>는 저장소의 파일 경로입니다(예: ~/bahmni-code/bahmni-core).
- 중요: 실행 전에 저장소에 최신 코드를 받아 두십시오.
- -v2 매개변수는 선택 사항이며 생략하면 master로 간주합니다.
- 누락 가능성이 있는 커밋과 수동 확인이 필요한 cherry-pick 목록을 출력합니다. 문제가 없으면 All Cool을 출력합니다.


CI에서 수행할 단계
기본 개념: 각 릴리스에는 릴리스 버전이 접미사로 붙은 파이프라인 그룹이 있습니다. master 브랜치는 다음 릴리스 이름으로 추적합니다. 예를 들어 현재 0.81을 개발 중이고 0.80이 출시되었다면 master는 0.81로 추적하며 release-0.80 브랜치에는 자체 파이프라인 그룹이 있습니다. 0.81 릴리스 브랜치를 만들면 모든 저장소의 release-0.81 브랜치를 0.81 파이프라인에서 추적하기 시작하고, master를 추적하는 0.82용 새 파이프라인 세트를 만들거나 복사합니다.
- 릴리스용 파이프라인이 기존 master 대신 릴리스 브랜치를 추적하도록 수정합니다.
- 다음 릴리스용 파이프라인 세트를 만들거나 기존 세트를 재사용하고 <pipline_name>_v0_<version_number + 1>로 이름을 지정합니다(이전 파이프라인 그룹의 이름을 바꾸는 편이 쉽습니다).
- <pipline_name>_v0_<version_number + 1> 파이프라인은 master를 추적해야 합니다.
- Bahmni_MRS_v0_<version_number + 1> 파이프라인 매개변수의 bahmni_version과 rpm_version을 최신 버전으로 수정합니다.
- Bahmni_Pipeline_Group_Released 그룹의 각 파이프라인에서 bahmni_version과 rpm_version(있는 경우)을 최신 버전으로 수정하고 브랜치를 새 Git 저장소 브랜치로 변경합니다. 이 작업 전에 QA와 상의하십시오.
- 복제하는 파이프라인이 환경에 속하는지 확인합니다. 속해 있다면 새로 복제한 파이프라인도 해당 환경 그룹에 추가하여 관련 에이전트가 선택하도록 합니다.
- 배포 테스트 파이프라인의 릴리스 버전 번호(bahmni_version)를 조정합니다. 단일 시스템 설치와 이중 시스템 설치의 매개변수에 현재 릴리스 상태가 반영되었는지 확인합니다.
- 각 저장소의 빌드가 정상인지 확인합니다.
이제 완료되었습니다. 커피 한 잔 하세요.
원문 정보
원문 보기 ↗Bahmni Wiki · CC BY-SA 4.0