github 및 gitlab 외부에서 monorepo-builder 사용
3407 단어 composerphpprogrammingmonorepo
현재 이 작업은 모두 두 개의 개별 저장소에서 수행됩니다.
절대적으로 괜찮습니다. 그러나 나는 더 이상 그것을 좋아하지 않습니다.
단일 컨텍스트에 대한 별도의 저장소 문제
API를 변경하고 이에 대한 계약을 조정해야 하는 경우 어떻게 됩니까?
보시다시피 API로 작업하는 동안 수행해야 하는 많은 단계입니다.
그래서 우리는 그것에 대해 무엇을 할 수 있습니까?
모노레포 구조
If you don't know what a monorepo is, or why you should care about. Check out the blog post from All You Always Wanted to Know About Monorepo But Were Afraid To Ask
SDK를 API 리포지토리에 추가하면 작업이 그 어느 때보다 쉬워집니다. 이제 최신 버전의 SDK에서 직접 작업하고 API 내부에서 즉시 테스트를 작성할 수 있습니다.
모든 것이 작동하면 태그를 지정하고 패키지를 게시하십시오.
쉽죠? 오른쪽?
모노 리포지토리에서 패키지를 게시하는 방법
모노 리포지토리 내부에서 실제로 패키지를 게시하는 부분에 관해서는 많은 git 명령 또는 symplify/monorepo-builder과 같은 다른 기존 도구를 사용하여 창의력을 발휘해야 합니다.
최신 버전에서 그는 github 및 gitlab에 대한 지원을 추가했기 때문에 이것을 workflow action으로 포함하면 완료됩니다. 이것은 굉장하다!
있지만! 우리 회사에서 github 작업을 사용하는 것은 현장 비트버킷 서버를 사용하고 있기 때문에 실제 옵션이 아니었습니다. 젠장!
쉬운 모노레포 분할의 꿈은 사라졌습니다 :(
구조에 도커
모르는 경우 Github 작업은 백그라운드에서 도커와 함께 작동합니다. 그래서 실제로 도커 이미지를 사용하여 직접 실행할 수 있습니다.
예, 저는 할수 있습니다!
그러나 스플리터에 대한 Github 및 Gitlab에 대한 직접 참조는 어떻습니까?
다행스럽게도 bitbucket에서 일부 환경 변수를 설정할 수 있고 모든 것이 예상대로 작동합니다. :)
우리가 해야 할 유일한 "해킹"은 Github에서 prefix
GITLAB_CI=bitbucket
를 처리할 필요가 없도록 INPUT_
환경을 설정하는 것입니다.도커 이미지 실행
그렇다면 도커를 사용하여 스플리터를 어떻게 실행할 수 있습니까?
음, 여기에 작은 bash 스크립트가 있습니다.
docker run \
-e GITLAB_CI=bitbucket \
-e PAT="user:accesstoken" \
-e PACKAGE_DIRECTORY=packages/test-package \
-e REPOSITORY_ORGANIZATION=org \
-e REPOSITORY_NAME=test-package \
-e BRANCH=master \
-e REPOSITORY_HOST=bitbucket.host.de/scm \
-e CI_COMMIT_SHA=$COMMIT_SHA \
-e USER_NAME="User Name" \
-e [email protected] \
-e TAG=$TAG \
--workdir=/bitbucket/workspace \
-v $(pwd):"/bitbucket/workspace" \
--rm \
symplify2/monorepo-split:latest
Gitlab은 액세스 토큰만 사용하여 로그인할 수 있습니다. 그러나 스플리터에 대해
username:accesstoken
를 PAT
로 전달할 수 있습니다.또한
REPOSITORY_HOST
는 호스트일 뿐만 아니라 리포지토리에 대한 기본 경로의 일부도 포함합니다.한 가지 중요한 변경 사항은
--workdir
및 -v
옵션입니다. 실행 중인 컨테이너 내부에 소스가 필요하고 splitter 자체에서 소스를 재정의할 수 없으므로 workdir을 설정해야 합니다. 따라서 현재 작업 디렉토리를 연결할 다른 폴더가 필요합니다.그리고 그게 다야. 그것은 완벽하게 작동합니다 :)
이 놀라운 도구에 감사드립니다 <3
Reference
이 문제에 관하여(github 및 gitlab 외부에서 monorepo-builder 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/icanhazstring/using-monorepo-builder-outside-of-github-and-gitlab-5gk2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)