종속 항목의 모든 버전을 어떻게 관리하나요? 여기에 우리의 대답이 있습니다.

Flavien과 함께하는 방법을 보려면 비디오를 확인하십시오!



소개:



GitHub 리포지토리 간의 종속성을 어떻게 관리합니까?

자동화가 없으면 올바른 위치에서 올바른 파일을 업데이트해야 합니다.

그리고 대규모 프로젝트의 경우 Git 리포지토리에는 이 작업을 복잡하게 만드는 복잡한 메시가 있을 수 있습니다.

파트 1: 프로젝트 모양



여러 Git 리포지토리로 분할된 프로젝트에서 찾을 수 있는 클래식 메시 샘플을 보여 주는 것으로 시작하겠습니다.

이 예제는 웹 클라이언트, 모바일 클라이언트 및 데스크톱 클라이언트가 있는 크로스 플랫폼 애플리케이션이라고 가정합니다.

이를 위해 우리는 세 대상 모두에 공통되는 함수 라이브러리를 갖게 됩니다.

종속성:





protocol-lib: string-lib

core-code: string-lib, protocol-lib

desktop-app: core-code

mobile-app: core-code

web-app: core-code



보시다시피 서로 의존하는 총 6개의 Git 리포지토리가 있습니다.
이 예에서 앱의 기본 코드를 포함할 리포지토리 "core-code"는 각 플랫폼(데스크톱 앱, 모바일 앱 및 웹 앱)에서 공유됩니다.
해당 코어 코드는 컴파일을 위해 저장소 "string-lib"및 "protocol-lib"가 필요합니다.
올바른 종속성 파일을 항상 수동으로 편집해야 하는 것은 ***에서 매우 고통스럽기 때문에 잘 구성된 경우 이 작업이 이를 처리합니다.
탐색을 계속하면 "protocol-lib"저장소에도 "string-lib"저장소가 필요합니다. 특정 크기의 프로젝트에는 오류의 원인이 될 수 있는 매우 복잡한 메시 링크가 있을 수 있습니다.



파트 2: GitHub 작업



저장소 "string-lib"에 새 릴리스를 게시할 때 이 작업은 자동으로 저장소 "protocol-lib"및 "core-code"에 풀 요청을 생성하여 올바른 파일을 업데이트하고 종속성 파일의 자체 링크를 변경합니다. (에스). 그리고 이제 저장소 "protocol-lib"에서 PR을 병합하고 새 릴리스를 생성하면 저장소 "core-code"에서 이전에 생성된 PR을 업데이트하여 아직 병합되지 않은 경우 이러한 변경 사항을 추가합니다.

이제 저장소 "core-code"의 변경 사항을 수락하여 "string-lib"및 "protocol-lib"버전을 업데이트할 수 있습니다. 이렇게 하면 "desktop-app", "mobile-app"및 "web-app"의 버전이 한 번에 일괄 업그레이드됩니다.

이제 작업에 집중할 수 있습니다. ;)

https://github.com/lenra-io/create-or-update-pr-action

좋은 웹페이지 즐겨찾기