.circleci/config.yml 분할
4799 단어 circleci
.circleci/config.yml
분할 방법을 소개합니다.CircleCI는 .circleci/config.yml 분할을 지원하지 않으므로 모든 워크플로 및 작업 구성을 하나의 파일 .circleci/config.yml로 관리합니다.
리포지토리가 Monorepo 인 경우 서비스 수가 많을수록 .circleci/config.yml의 크기가 커지고 .circleci/config.yml을 유지 관리하기 어렵습니다.
서비스별로 .circleci/config.yml을 분할하여 .circleci/config.yml을 유지 관리하기 쉽고 분할 파일CODEOWNERS을 구성할 수 있습니다.
.circleci/config.yml을 분할하려면 분할 파일을 병합하여 .circleci/config.yml을 생성하고 분할 파일과 .circleci/config.yml을 모두 커밋해야 합니다.
circleci 구성 팩
분할 파일을
circleci config pack
명령으로 병합할 수 있지만 다른 도구circleci-config-merge를 소개합니다.CircleCI CLI는 공식 툴이라 안정적이지만 파일명 제한과 디렉토리 구조가 좀 빡빡한 느낌이 듭니다.
같은 디렉토리에 있는 모든 파일을 관리해야 하며, 생성된 YAML 콘텐츠에 파일 경로가 반영됩니다.
circleci config pack
에 대한 자세한 내용은 공식 문서를 참조하십시오.https://circleci.com/docs/2.0/local-cli/#packing-a-config
circleci config pack
의 제한을 수용할 수 있다면 공식 도구이므로 사용을 권장합니다.그러나 제한 사항을 수락하기 어렵다면 circleci-config-merge 도움이 될 것입니다.
circleci 구성 병합
circleci-config-merge는 분할 파일을 병합하여 .circleci/config.yml을 생성하는 CLI 도구입니다.
circleci-config-merge의 사용법은 다음과 같다.
$ circleci-config-merge merge <file1> [<file2> ...]
파일 경로에는 제한이 없으며 분할 파일 형식은 .circleci/config.yml과 동일합니다.
예를 들어, 동일한 디렉토리에 있는 파일을 관리할 수 있습니다.
.circleci/
config.yml # generated
src/
service1.yml # split config per service
service2.yml
...
또는 각 서비스 디렉토리의 파일을 관리할 수도 있습니다.
service1/
circleci/
workflow.yml # you can split file freely
jobs.yml
...
service2/
circleci/
config.yml
...
...
circleci-config-merge는 워크플로 작업 목록을 병합합니다.
예를 들어,
workflows:
build:
jobs:
- foo
workflows:
build:
jobs:
- bar
워크플로
build
의 작업은 다음과 같이 병합됩니다.workflows:
build:
jobs: # sort by job name for comparison
- bar
- foo
CI에서 .circleci/config.yml 테스트
.circleci/config.yml을 분할하는 경우 분할 파일을 병합하여 .circleci/config.yml이 생성되는지 여부를 CI에서 테스트해야 합니다.
circleci-config-merge는 이러한 기능을 제공하지 않지만 dyff 과 같은 다른 도구로 테스트를 구현할 수 있습니다.
예제 저장소suzuki-shunsuke/example-circleci-config-merge를 만들었습니다.
이 예제를 .circleci/config.yml 분할 및 CI 설정에 대한 참조로 사용할 수 있습니다.
사용 사례
마지막으로 circleci-config-merge의 사용 사례를 소개합니다.
최근에 6,000줄이 넘는 거대한 .circleci/config.yml을 약 60개의 파일로 분할했습니다.
원래 .circleci/config.yml을 유지하기 어려웠는데 분할하여 .circleci/config.yml을 유지하기 쉬워졌습니다.
당신이 거대한 .circleci/config.yml로 고통받고 있다면, 그것을 나누자!
결론
이 게시물에서 거대한 .circleci/config.yml을 분할하는 방법을 소개했습니다.
분할 파일을 circleci-config-merge 과 병합하여 .circleci/config.yml을 생성할 수 있습니다.
분할 .circleci/config.yml 및 설정 CI에 대한 참조로 예제suzuki-shunsuke/example-circleci-config-merge를 참조하십시오.
Reference
이 문제에 관하여(.circleci/config.yml 분할), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/suzukishunsuke/splitting-circleci-config-yml-10gk텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)